天天看点

JSR303数据校验使用方法记录

JSR303并不对应着指定的jar包,而是一种规范,目前<code>hibernate-validator</code>是使用最多的是基于JSR303规范的实现

本文不适合新人观看,要求至少要知道使用方法

这里记录一些常见常用的注解,并非全部,如有遇到会随时补充

注解简单介绍

每个注解都包含通用属性,这里介绍一下message和groups:

注解

作用

message

字符串,报错后提示的错误信息

groups

接口的class属性,为校验分组

值类型校验

@Null

必须为Null

@NotNull

必须不为Null

@NotBlank

必须不为空(去除首位空格)

@NotEmpty

效果等同于@NotBlank

@AssertTrue

必须为true

@AssertFalse

必须为false

@Pattren

必须符合该正则表达式

@Email

必须是电子邮箱格式

范围类型校验

@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注解后会开启参数校验,未通过校验规则会抛出异常,针对异常可以通过全局异常处理优雅的返回错误信息,这里就不写那么细了,直接将方法粘过来

作者多数为原创文章 ( 部分转载已标出 ),目前资历尚浅文章内描述可能有误,对此造成的后果深表歉意,如有错误还望指正