国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用jsr303規(guī)范驗(yàn)證數(shù)據(jù)

Pandaaa / 1511人閱讀

摘要:我們有時(shí)需要對前端傳過來的數(shù)據(jù)做校驗(yàn),就可以使用。他可以使我們不用在每個(gè)編寫校驗(yàn)代碼,可以達(dá)到解耦的功能。本文環(huán)境為,框架使用。

我們有時(shí)需要對前端傳過來的數(shù)據(jù)做校驗(yàn),就可以使用spring validation。他可以使我們不用在每個(gè)Controller編寫校驗(yàn)代碼,可以達(dá)到解耦的功能。本文環(huán)境為jdk8,框架使用springboot 2.1.0.RELEASE。
1.添加依賴


    org.springframework.boot
    spring-boot-starter-validation

2.需要被校驗(yàn)的實(shí)體類

@Data
public class LoginVo {

    @Size(min=6,max = 12,message = "用戶名不符合規(guī)范")
    String username;
    @NotBlank(message = "密碼不能為空")
    String password;
}

3.Controller層,在參數(shù)Login前加上@Validated注解,表明需要spring對其進(jìn)行校驗(yàn)

public JSONResult registerOrLogin(@Validated LoginVo loginVo)
 

JSR提供的校驗(yàn)注解:
@Null   被注釋的元素必須為 null    
@NotNull    被注釋的元素必須不為 null    
@AssertTrue     被注釋的元素必須為 true    
@AssertFalse    被注釋的元素必須為 false    
@Min(value)     被注釋的元素必須是一個(gè)數(shù)字,其值必須大于等于指定的最小值    
@Max(value)     被注釋的元素必須是一個(gè)數(shù)字,其值必須小于等于指定的最大值    
@DecimalMin(value)  被注釋的元素必須是一個(gè)數(shù)字,其值必須大于等于指定的最小值    
@DecimalMax(value)  被注釋的元素必須是一個(gè)數(shù)字,其值必須小于等于指定的最大值    
@Size(max=, min=)   被注釋的元素的大小必須在指定的范圍內(nèi)    
@Digits (integer, fraction)     被注釋的元素必須是一個(gè)數(shù)字,其值必須在可接受的范圍內(nèi)    
@Past   被注釋的元素必須是一個(gè)過去的日期    
@Future     被注釋的元素必須是一個(gè)將來的日期    
@Pattern(regex=,flag=)  被注釋的元素必須符合指定的正則表達(dá)式 
Hibernate Validator提供的校驗(yàn)注解:  
@NotBlank(message =)   驗(yàn)證字符串非null,且長度必須大于0    
@Email  被注釋的元素必須是電子郵箱地址    
@Length(min=,max=)  被注釋的字符串的大小必須在指定的范圍內(nèi)    
@NotEmpty   被注釋的字符串的必須非空    
@Range(min=,max=,message=)  被注釋的元素必須在合適的范圍內(nèi)   

4.如果前端傳來的數(shù)值不符合標(biāo)準(zhǔn),后端會(huì)報(bào)錯(cuò),所以我們可以編寫一個(gè)全局異常類來捕獲這個(gè)參數(shù)綁定異常,從而給前端返回提示消息

@ControllerAdvice
@ResponseBody
public class GlobalExceptionHandler {

    @ExceptionHandler(value = Exception.class)//攔截所有異常
    public JSONResult exceptionHandler(HttpServletRequest request, Exception e){
        e.printStackTrace();
         if(e instanceof BindException) {
            BindException ex = (BindException)e;
            List errors = ex.getAllErrors();//綁定錯(cuò)誤返回很多錯(cuò)誤,是一個(gè)錯(cuò)誤列表,只需要第一個(gè)錯(cuò)誤
            ObjectError error = errors.get(0);
            String msg = error.getDefaultMessage();
            return JSONResult.errorMsg("用戶名或密碼格式錯(cuò)誤");
        }else {
            return JSONResult.errorMsg("未知錯(cuò)誤");
        }

    }
}

5.驗(yàn)證
前端:

后端:

如圖,后端捕獲了異常,并向前端返回了提示信息
6.我們還可以使用分組功能,是變量在某些場景需要被驗(yàn)證,而不是所有場景,增加靈活性。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/75171.html

相關(guān)文章

  • 記錄_使用JSR303規(guī)范進(jìn)行數(shù)據(jù)校驗(yàn)

    摘要:時(shí)間年月日星期三說明使用規(guī)范校驗(yàn)接口請求參數(shù)源碼第一章理論簡介背景介紹如今互聯(lián)網(wǎng)項(xiàng)目都采用接口形式進(jìn)行開發(fā)。該規(guī)范定義了一個(gè)元數(shù)據(jù)模型,默認(rèn)的元數(shù)據(jù)來源是注解。 時(shí)間:2017年11月08日星期三說明:使用JSR303規(guī)范校驗(yàn)http接口請求參數(shù) 源碼:https://github.com/zccodere/s... 第一章:理論簡介 1-1 背景介紹 如今互聯(lián)網(wǎng)項(xiàng)目都采用HTTP接口...

    187J3X1 評論0 收藏0
  • Spring Boot 2.0 @ConfigurationProperties 使用

    摘要:引言的一個(gè)便捷功能是外部化配置,可以輕松訪問屬性文件中定義的屬性。本文將詳細(xì)介紹的使用。 引言 Spring Boot的一個(gè)便捷功能是外部化配置,可以輕松訪問屬性文件中定義的屬性。本文將詳細(xì)介紹@ConfigurationProperties的使用。 配置項(xiàng)目POM 在pom.xml中定義Spring-Boot 為parent org.springframework.boot...

    mating 評論0 收藏0
  • 參數(shù)驗(yàn)證 @Validated 和 @Valid 的區(qū)別

    摘要:也就是說如果傳的中有的為空或者是負(fù)數(shù),入?yún)Ⅱ?yàn)證不會(huì)檢測出來。為了能夠進(jìn)行嵌套驗(yàn)證,必須手動(dòng)在實(shí)體的字段上明確指出這個(gè)字段里面的實(shí)體也要進(jìn)行驗(yàn)證。用在方法入?yún)⑸蠠o法單獨(dú)提供嵌套驗(yàn)證功能。 來源:blog.csdn.net/qq_27680317/article/details/79970590整編:Java技術(shù)棧(公眾號ID:javastack) Spring Validation驗(yàn)證框...

    lieeps 評論0 收藏0
  • SpringBoot 實(shí)戰(zhàn) (十五) | 服務(wù)端參數(shù)校驗(yàn)之一

    摘要:前言估計(jì)很多朋友都認(rèn)為參數(shù)校驗(yàn)是客戶端的職責(zé),不關(guān)服務(wù)端的事。輕則導(dǎo)致服務(wù)器宕機(jī),重則泄露數(shù)據(jù)。所以,這時(shí)就需要設(shè)置第二道關(guān)卡,服務(wù)端驗(yàn)證了。老項(xiàng)目的服務(wù)端校驗(yàn)不能為空不能為空看以上代碼,就一個(gè)的校驗(yàn)就如此麻煩。 前言 估計(jì)很多朋友都認(rèn)為參數(shù)校驗(yàn)是客戶端的職責(zé),不關(guān)服務(wù)端的事。其實(shí)這是錯(cuò)誤的,學(xué)過 Web 安全的都知道,客戶端的驗(yàn)證只是第一道關(guān)卡。它的參數(shù)驗(yàn)證并不是安全的,一旦被有心人...

    QiShare 評論0 收藏0
  • 使用spring validation 作為數(shù)據(jù)校驗(yàn)

    摘要:本文主要介紹在中自動(dòng)校驗(yàn)的機(jī)制。引入依賴我們使用構(gòu)建應(yīng)用來進(jìn)行演示。在中校驗(yàn)數(shù)據(jù)值得注意的地方參數(shù)前需要加上注解,表明需要對其進(jìn)行校驗(yàn),而校驗(yàn)的信息會(huì)存放到其后的中。層改寫方法限定需要進(jìn)行校驗(yàn),而方法則不做限制。 簡介 JSR303/JSR-349,hibernate validation,spring validation之間的關(guān)系。JSR303是一項(xiàng)標(biāo)準(zhǔn),JSR-349是其的升級版...

    huangjinnan 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<