Spring Boot学习入门之表单验证
前言
所谓表单验证,即校验用户提交的数据的合理性的,比如是否为空了,密码长度是否大于6位,是否是纯数字的,等等。springboot是如何帮我们实现表单验证的呢?下面话不多说了,来一起看看详细的介绍吧。
假设现在我们存在这么一个注册界面:
hellospringboot 姓名:
密码:
需要验证提交上去的用户名,密码。是否为空,以及其他的一些问题。我们需要怎么做呢?
首先我们需要一个实体类:User类,存储表单提交上来的数据:
publicclassUser{
privateintid;
@NotEmpty(message="用户名不能为空")
privateStringusername;
@NotEmpty(message="密码不能为空")
@Length(min=6,message="密码长度不能少于6位")
privateStringpassword;
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicStringgetUsername(){
returnusername;
}
publicvoidsetUsername(Stringusername){
this.username=username;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
}
使用@NotEmpty,@Length等注解,添加message的值,指示如果不符合的话,会得到什么message。
接下来编写Controller类:使用@Valid注解验证数据,并且使用BindingResult获取结果。
@Controller
publicclassFormController{
@RequestMapping(value="/register",method=RequestMethod.GET)
publicStringregister(){
return"register";
}
@RequestMapping(value="/doRegister",method=RequestMethod.POST)
public@ResponseBodyUserdoRegister(@ValidUseruser,BindingResultresult,Modelmodel){
if(result.hasErrors()){
Listlist=result.getAllErrors();
for(ObjectErrorerror:list){
System.out.println(error.getDefaultMessage());
}
returnnull;
}
System.out.println("注册..");
returnuser;
}
}
这样就完成了一个简单的表单验证。
而除了@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 验证邮箱
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。