SpringBoot服务端表单数据校验
实现添加用户功能
实体类
public class Users {
private String name;
private String password;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Users [name=" + name + ", password=" + password + ", age=" + age + "]";
}
Controller
@Controller
public class UserController {
@RequestMapping("/{page}")
public String turnPage(@PathVariable String page) {
return page;
}
@RequestMapping("/save")
public String save(Users users) {
System.out.println(users);
return "success";
}
}
添加页面
<form th:action="@{/save}" method="post">
用户名:<input type="text" name="name" /><br/>
密码:<input type="password" name="password" /><br/>
年龄:<input type="text" name="age" /><br/>
<input type="submit" value="确定" />
SpringBoot对表单做数据校验
1、技术特点
使用了Hibernate-validate校验框架
步骤:
在实体类中添加校验规则
@NotBlank //非空校验
private String name;
@NotBlank //非空校验
private String password;
在Controller中开启校验
/**
* @param users
* @param result
* @Valid 开启对Users对象的校验
* BindingResult 封装了校验的结果
* @return
*/
@RequestMapping("/save")
public String save(@Valid Users users ,BindingResult result) {
if(result.hasErrors()) {
return "index";
}
System.out.println(users);
return "success";
}
显示校验信息
用户名:<input type="text" name="name" /><font color="red" th:errors="${users.name}">用户名不能为空</font><br/>
密码:<input type="password" name="password" /><font color="red" th:errors="${users.name}">密码不能为空</font><br/>
解决异常
/**
* 解决异常:
* 在跳转页面的方法中注入Users对象
* 注意:由于SpringMVC会将放入到Model中传递,key的名称会使用该对象名称的驼峰式来命名
* 例如:Users----->users
*
* 也可以用@ModelAttribute("a")讲key改为a。
* @param page
* @param users
* @return
*/
@RequestMapping("/{page}")
public String turnPage(@PathVariable String page,Users users) {
return page;
}
其他检验规则
@NotBlank:判断字符串是否为null,或是空串(去掉收尾空格)
@NotEmpty:判断字符串是否为null,或是空串
@Length:判断字符串长度(min,max)
@Min:判断数值最小值
@Max:判断数值最大值
@Email:判断邮箱格式是否合法