SpringBoot表单数据校验

Springboot中使用了Hibernate-validate作为默认表单数据校验框架

在实体类上的具体字段添加注解

1 public class User {
2     @NotBlank
3     private String name;
4     @NotBlank
5     private String password;
6     private Integer age;
7     //set、get方法......
8 }

在controller中开启校验

1 @RequestMapper("/save")
2 public String saveUser(@Valid User user, BindingResult bindingResult) {
3     if(bindingResult.hasErrors()) {
4         //返回原来页面,模板引擎能拿到bindingResult中的error
5         return "add"; 
6     } else {
7         return "ok";
8     }
9 }

thymeleaf页面

 1 <html>
 2     <head>
 3         <meta charset="utf-8">
 4     </head>
 5     <body>
 6         <form th:action="@{/save}" method="post">
 7             用户姓名:<input type="text" name="name"/>
 8             <font color="red" th:errors="${user.name}"></font><br/>
 9             用户密码:<input type="password" name="password" />
10             <font color="red" th:errors="${user.password}"></font><br/>
11             用户年龄:<input type="text" name="age" />
12             <font color="red" th:errors="$user.age"></font><br/>
13             <input type="submit" value="ok">
14         </form>
15     </body>
16 </html>

首次打开此模板页面可能报错,因为需要user对象,于是在controller中这样写

 1 @RequestMapping("addUser")
 2 public String showPage(@ModelAttribute("user") User user) {
 3     return "add";
 4 }
 5 
 6 @RequestMapping("save")
 7 public String saveUser(@ModelAttribute("user") @Valid User user, BindingResult bindingResult) {
 8     if(bindingResult.hasErrors()) {
 9         return "add";
10     } else {
11         return "ok";
12     }
13 }

Hibernate-Validate常用校验规则

@NotBlank:判断字符创是否是null或者是空串(去掉首尾空格)。

@NotEmpty判断字符串是否为null会者是空串。

@Length判断字符的长度(最大或最小)

@Min判断数值最小值

@Max判断数值最大值

@Email判断邮箱是否合法

猜你喜欢

转载自www.cnblogs.com/guanghe/p/10967551.html
今日推荐