JSR303并不对应着指定的jar包,而是一种规范,目前<code>hibernate-validator</code>是使用最多的是基于JSR303规范的实现
本文不适合新人观看,要求至少要知道使用方法
这里记录一些常见常用的注解,并非全部,如有遇到会随时补充
注解简单介绍
每个注解都包含通用属性,这里介绍一下message和groups:
注解
作用
message
字符串,报错后提示的错误信息
groups
接口的class属性,为校验分组
值类型校验
@Null
必须为Null
@NotNull
必须不为Null
@NotBlank
必须不为空(去除首位空格)
@NotEmpty
效果等同于@NotBlank
@AssertTrue
必须为true
@AssertFalse
必须为false
@Pattren
必须符合该正则表达式
必须是电子邮箱格式
范围类型校验
@Min
必须是数字且大于等于指定的数字
@Max
必须是数字且小于等于指定的数字
@Range
必须是数字且大于等于<code>min</code>,小于等于<code>max</code>
@DecimalMin
@DecimalMax
@Digits
必须是数字且整数位不能超过<code>integer</code>位,小数位不能超过<code>fraction</code>位
@Length
必须是字符串且大于等于<code>min</code>并且小于等于<code>max</code>
@Size
适用于字符串集合数组,长度大于等于<code>min</code>并且小于等于<code>max</code>
@Past
必须是过去的日期
@Future
必须是将来的日期
自定义校验注解需要创建一个注解,然后加上每个校验注解都有的三个基本属性
现在注解就创建完成了,但是是个没用的空壳注解,想要让他拥有校验的能力需要一个类来帮他完成校验,使用<code>@Constraint</code>注解来指定让哪个类来帮自己完成校验
接下来创建<code>PhoneValidate</code>类来帮注解完成校验规则
Contrller层的实体类加上@Valid注解后会开启参数校验,未通过校验规则会抛出异常,针对异常可以通过全局异常处理优雅的返回错误信息,这里就不写那么细了,直接将方法粘过来
作者多数为原创文章 ( 部分转载已标出 ),目前资历尚浅文章内描述可能有误,对此造成的后果深表歉意,如有错误还望指正