这期内容当中小编将会给大家带来有关利用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 验证邮箱
上述就是小编为大家分享的利用Spring Boot怎么实现一个表单验证功能了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注天达云行业资讯频道。