第一步:实体类
@Data
@ToString
public class User {
private Integer id;
@NotBlank(message = "用户名不能为空")
@Length(min = 6, max = 32, message = "用户名的长度需要在6~32之间")
private String name;
@Past(message = "出生日期必须早于当前日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate birth;
@Email(
regexp = "^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*\\.[a-zA-Z0-9]{2,6}$",
message = "邮件格式错误")
private String email;
@Size(min = 11, max = 11, message = "用户电话长度必须为11位")
private String mobile;
@NotNull(message = "用户等级不能为空")
@Min(value = 1, message = "用户等级最小值为1")
@Max(value = 6, message = "用户等级最大值为6")
@Digits(integer = 1, fraction = 0, message = "用户等级必须为整数")
private Integer level;
}
第二步:定义BaseController
public class BaseController {
protected Optional<List<String>> valid(BindingResult result){
if(result.hasErrors()){
List<String> list = result.getAllErrors().stream()
.map(error -> error.getDefaultMessage())
.collect(Collectors.toList());
return Optional.ofNullable(list);
}
return Optional.empty();
}
}
第三步:定义控制器
@RestController
@RequestMapping("/user1")
public class UserController extends BaseController{
@PostMapping("/add")
public void add(@Valid User user, BindingResult result) {
Optional<List<String>> op = valid(result);
if(op.isPresent()){
op.get().forEach(System.out::println);
}
}
}
第四步:测试

