服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Spring Boot学习入门之表单验证

Spring Boot学习入门之表单验证

2020-12-25 14:18a60782885 Java教程

表单验证主要是用来防范小白搞乱网站和一些低级的黑客技术。Spring Boot可以使用注解 @Valid 进行表单验证。下面这篇文章主要给大家介绍了关于Spring Boot学习入门之表单验证的相关资料,需要的朋友可以参考借鉴,下面来一起看看

前言

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!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类,存储表单提交上来的数据:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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获取结果。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@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     验证邮箱

总结

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

原文链接:http://blog.csdn.net/a60782885/article/details/68488411

延伸 · 阅读

精彩推荐