javax.validation
validation-api
2.0.1.Final
org.hibernate.validator
hibernate-validator
二,在找到自己的实体类定义自己要校验的参数
三,就是@Valid和@Validated的用法(区别)
1-1:@Valid作为标准JSR-303规范,还没有吸收分组的功能
1-2:@ValidatedJSR-303规范,提供了一个分组功能,可以在校验时,根据不同的分组采取不同的校验机制
如图:
1. @Validated(addGroup.class)就是给参数进行了分组校验
四,有人会问addGroup.class是哪里来的啊
addGroup.class:是一个接口类,简单的来说:就是用来给参数做标记的(里面不需要写任何代码)
五,来说一下常用的几个注解:
1.@NotNull :被注解的元素必须不为null
2.@NotBlank注解 :验证注解的元素值不为空(不为null、去除首位空格后长度为0) ,并且类型为String。
3.@NotEmpty注解 :验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0) ,并且类型为String。
4.@AssertTrue注解 :被注解的元素必须为true,并且类型为boolean。
5.@AssertFalse注解 :被注解的元素必须为false,并且类型为boolean。
6.@Min注解 :被注解的元素其值必须大于等于最小值,并且类型为int,long,float,double。
7. @Max注解:被注解的元素其值必须小于等于最小值,并且类型为int,long,float,double。
8.@DecimalMin注解 :验证注解的元素值大于等于@DecimalMin指定的value值,并且类型为BigDecimal。
9.@DecimalMax注解 :验证注解的元素值小于等于@DecimalMax指定的value值 ,并且类型为BigDecimal。
10. @Range注解 :验证注解的元素值在最小值和最大值之间,并且类型为BigDecimal,BigInteger,CharSequence,byte,short,int,long。
11.@Past注解 :被注解的元素必须为过去的一个时间,并且类型为java.util.Date。
12. @Future注解 :被注解的元素必须为未来的一个时间,并且类型为java.util.Date。
13.@Size注解 :被注解的元素的长度必须在指定范围内,并且类型为String,Array,List,Map。
14.@Length注解 :验证注解的元素值长度在min和max区间内 ,并且类型为String。
15.@Digits注解 :验证注解的元素值的整数位数和小数位数上限 ,并且类型为float,double,BigDecimal。
16.@Pattern注解 :被注解的元素必须符合指定的正则表达式,并且类型为String。
17.@Email注解: 验证注解的元素值是Email,也可以通过regexp和flag指定自定义的email格式,类型为String。
六,如果在写项目的过程中,参数需要的条件注解满足不上,则我们需要自定义注解来完成
第一步:建一个自定义的注解类:如图:
第二步:建一个逻辑处理数据的方法 :如图:
第三步:String message() default "{com.atguigu.common.valid.ListValue.message}";
这个消息:message() default "{com.atguigu.common.valid.ListValue.message}";
可以在配置文件中来写:
第四步:在实体类中来调用:
完成!
有用记得关注,点赞哦