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还需满足提供的条件

 

你可能感兴趣的:(springmvc)