最近工做,毕业设计都忙疯了,辞了工做如今终于有空余时间能够继续总结了
java
Spring有本身的校验框架,同时也支持JSR 303 的校验,这里主要介绍Spring使用JSR 303的校验,Spring的校验框架主要方法org.springframework.vaildation包中。须要注意,Spring并无提供JSR 303规范的实现,因此必须添加JSR303的实现者jar包(好比Hibernate Validator),Spring JSR 303 校验使用至关简单,只须要在须要验证的Bean中加入验证的注解,再在Sping MVC 方法入参时,在该Bean前面加上@Valid便可,例:
git
public Class user { private String userId; //使用正则表达式效验,匹配4~30个数字或字母或下划线的字符 @Pattern(regexp="w{4, 30}") private String userName; //长度在8~20之间 @Length(min=8, max=20) private String passWord; //时间必须是过去的时间 @Past @DateTimeFormat(pattern="yyy-MM-dd") private Date createDate; //数据必须大于1000小于100000 @DecimalMin(value="1000.00") @DeciamlMax(value="100000.00") @NumberFormat(pattern="#,###.##") private long salary; }
Controller中:正则表达式
@Controller public class UserController { @RequestMapping(value = "/user", method = RequestMethod.POST) public String addUser(@Valid User user, BindingResult result) { ...... } }
在Spring MVC将User对象绑定入参后会进行校验,结果会放在后面的BindingResult或者Errors对象中。spring
注意:BindingResult或者Errors必须紧跟在须要验证的Bean后面,若是其间有其余的入参会直接报异常数组
用于效验的Annotation:app
@AssertTrue / @AssertFalse
框架
验证适用字段:booleanspa
注解说明:验证值是否为true / false.net
属性说明:-设计
@DecimalMax / @DecimalMin
验证适用字段:BigDecimal,BigInteger,String,byte,short,int,long
注解说明:验证值是否小于或者等于指定的小数值,要注意小数存在精度问题
属性说明:公共
@Digits
验证适用字段:BigDecimal,BigInteger,String,byte,short,int,long
注解说明:验证值的数字构成是否合法
属性说明:integer:指定整数部分的数字的位数。fraction: 指定小数部分的数字的位数。
@Future / @Past
验证适用字段:Date,Calendar
注解说明:验证值是否在当前时间以后 / 以前
属性说明:公共
@Max / @Min
验证适用字段:BigDecimal,BigInteger,String,byte,short,int,long
注解说明:验证值是否小于或者等于指定的整数值
属性说明:公共
@NotNull / @Null
验证适用字段:引用数据类型
注解说明:验证值是否为非空 / 空
属性说明:公共
@Pattern
验证适用字段:String
注解说明:验证值是否配备正则表达式
属性说明:regexp:正则表达式flags: 指定Pattern.Flag 的数组,表示正则表达式的相关选项。
@Size
验证适用字段:String,Collection,Map,数组
注解说明:验证值是否知足长度要求
属性说明:max:指定最大长度,min:指定最小长度。