springmvc 分組校驗規則 Bean Validation

1.定義分組校驗規則
public interface ValidGroup {
    //接口中不需要定義任何方法,只是對不同的校驗進行分組
}
public interface ValidGroup1{
    //接口中不需要定義任何方法,只是對不同的校驗進行分組
}

2.在傳入參數的對象中添加規則
Class T{
     @NotBlank(message="參數不能爲空",groups = {ValidGroup.class})
     @NotBlank(message="參數不能爲空字符",groups = {ValidGroup1.class})
     private String a;
}

3.在controller中進行校驗,根據不同分組校驗
@Validated(value={ValidGroup.class}) 指定ValidGroup分組的校驗
public string a(@RequestBody @Valid T t) {

}

@Validated(value={ValidGroup1.class}) 指定ValidGroup1分組的校驗
public string a1(@RequestBody @Valid T t) {

}


Bean Validation 中內置的 constraint         
@Null               被註釋的元素必須爲 null    
@NotNull            被註釋的元素必須不爲 null    
@AssertTrue         被註釋的元素必須爲 true    
@AssertFalse        被註釋的元素必須爲 false    
@Min(value)         被註釋的元素必須是一個數字,其值必須大於等於指定的最小值    
@Max(value)         被註釋的元素必須是一個數字,其值必須小於等於指定的最大值    
@DecimalMin(value)  被註釋的元素必須是一個數字,其值必須大於等於指定的最小值    
@DecimalMax(value)  被註釋的元素必須是一個數字,其值必須小於等於指定的最大值    
@Size(max=, min=)   被註釋的元素的大小必須在指定的範圍內    
@Digits (integer, fraction)     被註釋的元素必須是一個數字,其值必須在可接受的範圍內    
@Past                           被註釋的元素必須是一個過去的日期    
@Future                         被註釋的元素必須是一個將來的日期    
@Pattern(regex=,flag=)          被註釋的元素必須符合指定的正則表達式  


註解         運行時檢查
@AssertFalse        被註解的元素必須爲false
@AssertTrue            被註解的元素必須爲true
@DecimalMax(value)    被註解的元素必須爲一個數字,其值必須小於等於指定的最小值
@DecimalMin(Value)    被註解的元素必須爲一個數字,其值必須大於等於指定的最小值
@Digits(integer=, fraction=)    被註解的元素必須爲一個數字,其值必須在可接受的範圍內
@Future                            被註解的元素必須是日期,檢查給定的日期是否比現在晚
@Max(value)                        被註解的元素必須爲一個數字,其值必須小於等於指定的最大值(百度上好多傳閱複製寫錯了 最小值)
@Min(value)                        被註解的元素必須爲一個數字,其值必須大於等於指定的最小值
@NotNull                        被註解的元素必須不爲null
@Null                            被註解的元素必須爲null
@Past(java.util.Date/Calendar)    被註解的元素必須過去的日期,檢查標註對象中的值表示的日期比當前早
@Pattern(regex=, flag=)            被註解的元素必須符合正則表達式,檢查該字符串是否能夠在match指定的情況下被regex定義的正則表達式匹配
@Size(min=, max=)                被註解的元素必須在制定的範圍(數據類型:String, Collection, Map and arrays)
@Valid    遞歸的對關聯對象進行校驗, 如果關聯對象是個集合或者數組, 那麼對其中的元素進行遞歸校驗,如果是一個map,則對其中的值部分進行校驗
@CreditCardNumber                對信用卡號進行一個大致的驗證
@Email                            被註釋的元素必須是電子郵箱地址
@Length(min=, max=)                被註解的對象必須是字符串的大小必須在制定的範圍內
@NotBlank                        被註解的對象必須爲字符串,不能爲空,檢查時會將空格忽略
@NotEmpty                        被註釋的對象必須爲空(數據:String,Collection,Map,arrays)
@Range(min=, max=)                被註釋的元素必須在合適的範圍內 (數據:BigDecimal, BigInteger, String, byte, short, int, long and 原始類型的包裝類 )
@URL(protocol=, host=, port=, regexp=, flags=)    被註解的對象必須是字符串,檢查是否是一個有效的URL,如果提供了protocol,host等,則該URL還需滿足提供的條件

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章