欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spring Boot学习入门之表单验证

程序员文章站 2024-02-27 12:10:15
前言 所谓表单验证,即校验用户提交的数据的合理性的,比如是否为空了,密码长度是否大于6位,是否是纯数字的,等等。spring boot是如何帮我们实现表单验证的呢?下面话...

前言

所谓表单验证,即校验用户提交的数据的合理性的,比如是否为空了,密码长度是否大于6位,是否是纯数字的,等等。spring boot是如何帮我们实现表单验证的呢?下面话不多说了,来一起看看详细的介绍吧。

假设现在我们存在这么一个注册界面:

<!doctype html> 
<html> 
<head> 
 <meta charset="utf-8" /> 
 <title>hello spring boot</title> 
</head> 
<body> 
 <form action="/doregister" method="post"> 
  <p>姓名:<input type="text" name="username"/> 
  </p> 
  <p>密码:<input type="text" name="password"/> 
  </p> 
  <p><button>提交</button></p> 
 </form> 
</body> 
</html> 

需要验证提交上去的用户名,密码。是否为空,以及其他的一些问题。我们需要怎么做呢?

首先我们需要一个实体类:user类,存储表单提交上来的数据:

public class user { 
  
 private int id; 
  
 @notempty(message="用户名不能为空") 
 private string username; 
  
 @notempty(message="密码不能为空") 
 @length(min=6, message="密码长度不能少于6位") 
 private string password; 
 
 public int getid() { 
  return id; 
 } 
 
 public void setid(int id) { 
  this.id = id; 
 } 
 
 public string getusername() { 
  return username; 
 } 
 
 public void setusername(string username) { 
  this.username = username; 
 } 
 
 public string getpassword() { 
  return password; 
 } 
 
 public void setpassword(string password) { 
  this.password = password; 
 } 
 
} 

使用@notempty,@length等注解,添加message的值,指示如果不符合的话,会得到什么message。

接下来编写controller类:使用@valid注解验证数据,并且使用bindingresult获取结果。

@controller 
public class formcontroller { 
 
 @requestmapping(value="/register", method=requestmethod.get) 
 public string register() { 
  return "register"; 
 } 
  
  
 @requestmapping(value = "/doregister", method = requestmethod.post) 
 public @responsebody user doregister(@valid user user, bindingresult result, model model) { 
  if (result.haserrors()) { 
   list<objecterror> list = result.getallerrors(); 
   for (objecterror error : list) { 
    system.out.println(error.getdefaultmessage()); 
   } 
   return null; 
  } 
  system.out.println("注册.."); 
  return user; 
 } 
 
} 

这样就完成了一个简单的表单验证。

而除了@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     验证邮箱

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。