大纲:
(1) 入门例子;
(2) 国际化;
(3) 在代码中添加错误信息;
(1) 入门例子;
Validator主要是校验用户提交的数据的合理性的,比如是否为空了,密码长度是否大于6位,是否是纯数字的,等等。那么在spring boot怎么使用这么强大的校验框架呢。
在这里我们主要是使用注解进行学习。我们先说说我们的需求:
我们有一个demo.html,在页面上有两个元素姓名输入框,密码输入库,提交按钮。
提交到后台之后,使用Validator进行校验,然后如果存在错误,转发到demo.html,
我们先编写一个实体类接收用户的输入,以及使用Validator注解校验:
package com.kfit.demo;
importorg.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;
publicclass Demo {
privatelongid;
@NotEmpty(message="姓名不能为空")
private Stringname;
@NotEmpty(message="密码不能为空")
@Length(min=6,message="密码长度不能小于6位")
private Stringpassword;
publiclong getId() {
returnid;
}
publicvoid setId(longid) {
this.id =id;
}
public StringgetName() {
returnname;
}
publicvoid setName(Stringname) {
this.name =name;
}
public StringgetPassword() {
returnpassword;
}
publicvoidsetPassword(Stringpassword) {
this.password =password;
}
@Override
public StringtoString() {
return"Demo[id=" +id +", name=" +name +", password=" +password +"]";
}
}
这个实体类在属性上加入了注解@NotEmpty,@Length,那么常用的注解有:
约束注解名称 约束注解说明
@null 验证对象是否为空
@notnull 验证对象是否为非空
@asserttrue 验证 boolean 对象是否为 true
@assertfalse 验证 boolean 对象是否为 false
@min 验证 number和 string 对象是否大等于指定的值
@max 验证 number和 string 对象是否小等于指定的值
@decimalmin 验证 number和 string 对象是否大等于指定的值,小数存在精度
@decimalmax 验证 number和 string 对象是否小等于指定的值,小数存在精度
@size 验证对象(array,collection,map,string)长度是否在给定的范围之内
@digits 验证 number和 string 的构成是否合法
@past 验证 date和 calendar 对象是否在当前时间之前
@future 验证 date和 calendar 对象是否在当前时间之后
@pattern 验证 string对象是否符合正则表达式的规则
@Email 验证邮箱
实际例子:
@size (min=3, max=20,message="用户名长度只能在3-20之间")
@size (min=6, max=20,message="密码长度只能在6-20之间")
@pattern(regexp="[a-za-z0-9._%+-]+@[a-za-z0-9.-]+\\.[a-za-z]{2,4}",message="邮件格式错误")
@Length(min = 5, max = 20, message = "用户名长度必须位于5到20之间")
@Email(message = "比如输入正确的邮箱")
@NotNull(message = "用户名称不能为空")
@Max(value = 100, message = "年龄不能大于100岁")
@Min(value= 18 ,message= "必须年满18岁!" )
@AssertTrue(message = "bln4 must is true")
@AssertFalse(message = "blnf must is falase")
@DecimalMax(value="100",message="decim最大值是100")
DecimalMin(value="100",message="decim最小值是100")
@NotNull(message = "身份证不能为空")
@Pattern(regexp="^(\\d{18,18}|\\d{15,15}|(\\d{17,17}[x|X]))$", message="身份证格式错误")
。。。。。。。。。。。。。。。。。
版权原因,完整文章,请参考如下:59. Spring Boot Validator校验