十一、Spring Boot 表单验证
(一)、Spring Boot 项目创建(实现数据插入)
(二)、添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
(三)、数据验证
1.验证规则添加
- @NotBlank:不为空
代码:
public class Users {
private Integer id;
@NotBlank
private String name;
private Integer age;
@Override
public String toString() {
return "Users{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
2.controller修改
- @Validated:对该数据进行验证;’
- BindingResult:验证结果,
result.hasErrors()
为 true 表示验证没有通过; - @ModelAttribute:验证结果返回前端的对象名称,默认是验证变量名称的驼峰形式,通过注解
@ModelAttribute
自定义验证结果返回前端的对象名称。
@Controller
public class UserController {
@GetMapping("/addUser")
public String addUser(@ModelAttribute("users") Users users) {
return "addUser";
}
@PostMapping("/saveUser")
public String saveUser(@ModelAttribute("users") @Validated Users users, BindingResult result){
if (result.hasErrors()) {
return "addUser";
}
System.out.println("添加用户成功:" + users.toString());
return "ok";
}
}
3.表单创建
- th:errors,后台传递对象,表单验证结果显示;
- users.name:验证结果。
<form action="/saveUser" method="post">
用户名:<input type="text" name="name" ><span style="color: red" th:errors="${users.name}"></span><br>
密码: <input type="text" name="age"><span style="color: red" th:errors="${users.age}"></span><br>
<input type="submit" value="添加">
</form>
(四)、常用校验规则
1.@NotBlank
字符串不能为null或是空串(去掉首尾)
2.@NotEmpty
字符串不能为null或空串
3.@Length
字符长度(最大或最小)
4.@Min
数值最小值
5.@Max
数值最大值
6.@Email
电子邮箱是否合法