一、普通校验
1.添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
2.创建User类
public class User {
private Integer id;
@Size(min = 5,max = 10,message = "用户名长度介于5到10个字符之间")
private String name;
@NotNull(message = "用户地址不能为空")
private String address;
@DecimalMin(value = "1",message = "年龄输入不正确")
@DecimalMax(value = "200",message = "年龄输入不正确")
private Integer age;
@Email(message = "邮箱格式不正确")
@NotNull(message = "邮箱不能为空")
private String mail;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public void setAddress(String address) {
this.address = address;
}
public String getAddress() {
return address;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", address='" + address + '\'' +
", age=" + age +
", mail='" + mail + '\'' +
'}';
}
}
3.创建Controller
@RestController
public class UserController {
@PostMapping("/user")
public List<String> addUser(@Validated User user, BindingResult result)
{
List<String> errors =new ArrayList<>();
if (result.hasErrors())
{
List<ObjectError> allErrors = result.getAllErrors();
for (ObjectError error :allErrors)
{
errors.add(error.getDefaultMessage());
}
}
return errors;
}
}
4.Postman测试
二、分组校验
有时候,在实体类中定义类很多校验规则,但是在某一次处理中,并不需要这么多校验规则,此时就需要分组校验
1.创建 两个接口
public interface ValidationGroup1 {
}
public interface ValidationGroup2 {
}
2.修改实体类User ,添加分组信息
public class User {
private Integer id;
@Size(min = 5,max = 10,message = "用户名长度介于5到10个字符之间",groups = ValidationGroup1.class)
private String name;
@NotNull(message = "用户地址不能为空",groups = ValidationGroup2.class)
private String address;
@DecimalMin(value = "1",message = "年龄输入不正确")
@DecimalMax(value = "200",message = "年龄输入不正确")
private Integer age;
@Email(message = "邮箱格式不正确")
@NotNull(message = "邮箱不能为空",groups = {ValidationGroup1.class,ValidationGroup2.class})
private String mail;
}
3.Postman 测试
用户name长度不够和邮件格式不正确也不满足要求,但是 这些不属于ValidationGroup2校验分组的校验规则,所以这里只校验邮箱地址是否为空和用户地址是否为空