在我们做spring mvc项目的时候,经常要对Controller中传入实体内容进行验证,费时还费力,SO,spring mvc 验证参数注解@Valid 注解,更方便了我们专注于业务的处理
官方参考地址 https://github.com/spring-guides/gs-validating-form-input.git ,大家clone下来的时候记得改下地址(附上阿里大法地址)
repositories {
maven{
url "http://maven.aliyun.com/nexus/content/groups/public/"
}
}
官方文档 http://spring.io/guides/gs/validating-form-input/
大家主要看PersonForm类,
模版里提供的类中多了3个注解,其中@NotNull 是针对下面的参数不能为空,如果为空,会抛出 javax.validation.constraints.NotNull.message
而@Size 很容易理解,就是参数大小,
/**
* @return size the element must be higher or equal to
*/
int min() default 0;
/**
* @return size the element must be lower or equal to
*/
int max() default Integer.MAX_VALUE;
里面有min() 和max()
在我们的controller中,要验证的实体记得一定要加 @Valid 使我们的注解生效
在验证我们的参数的时候,如果不加 BindingResult bindingResult会抛出异常,我们可以根据 BindingResult 来处理我们的提示错误等
很容易上手,
@Null 限制只能为null @NotNull 限制必须不为null @AssertFalse 限制必须为false @AssertTrue 限制必须为true @DecimalMax(value) 限制必须为一个不大于指定值的数字 @DecimalMin(value) 限制必须为一个不小于指定值的数字 @Digits(integer,fraction) 限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction @Future 限制必须是一个将来的日期 @Max(value) 限制必须为一个不大于指定值的数字 @Min(value) 限制必须为一个不小于指定值的数字 @Past 限制必须是一个过去的日期 @Pattern(value) 限制必须符合指定的正则表达式 @Size(max,min) 限制字符长度必须在min到max之间
这是 javax.validation 包下的,大家还要注意的是我们还可以用到Hibernate下的验证
@NotBlank(message =) 验证字符串非null,且长度必须大于0 很适合String 参数验证
@Email 被注释的元素必须是电子邮箱地址
@Length(min=,max=) 被注释的字符串的大小必须在指定的范围内
@NotEmpty 被注释的字符串的必须非空
@Range(min=,max=,message=) 被注释的元素必须在合适的范围内