一、依赖
org.springframework.bootspring-boot-starter-validation2.3.3.RELEASE
二、实体类
@TableField("username")
@NotBlank(message = "{user.name.notBlank}")
private String username;
@NotBlank(message = "{user.password.notBlank}")
@TableField("password")
private String password;
@NotBlank(message = "{user.email.notBlank}")
@Email(message = "{user.email.pattern}")
@TableField("email")
private String email;
三、配置
查看LocalValidationFactoryBean
类的源码,发现Spring Boot默认的ValidationMessagesSource
校验出错时的提示文件是在resources
文件夹下文件ValidationMessages.properties
ValidationMessages.properties
user.name.notBlank=用户名不能为空
user.password.notBlank=密码不能为空
user.email.notBlank=邮箱不能为空
user.email.pattern=邮箱格式不正确
四、Controller
/**
* 添加用户
*
* @param user 用户对象
* @return
*/
@PostMapping("/insert")
public ResultVO insert(@Validated @RequestBody User user, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
List allErrors = bindingResult.getAllErrors();return ResultVOUtil.fail(allErrors.stream().map(ObjectError::getDefaultMessage).collect(Collectors.toList()));
}
userService.insert(user.doBuild());return ResultVOUtil.success();
}
五、效果
六、参考注解
注解 | 作用 |
---|---|
@NotNull | 值不能为空 |
@Null | 值必须为空 |
@Pattern(regex=) | 字符串必须匹配正则表达式 |
@Size(min, max) | 集合元素的数量必须在min和max之间 |
@CreditCardNumber(ignoreNonDigitCharacters=) | 字符串必须是信用卡号,按照美国的标准验证 |
字符串必须是Email地址 | |
@Length(min, max) | 检查字符串的长度 |
@NotBlank | 字符串不能为空串 |
@NotEmpty | 字符串不能为null, 集合必须有元素 |
@Range(min, max) | 数字必须大于min, 小于max |
@SafeHtml | 字符串必须是安全的html |
@URL | 字符串必须是合法的URL |
@AssertFalse | 值必须是false |
@AssertTrue | 值必须是true |
@DecimalMax(value=, inclusive=) | 值必须小于等于(inclusive=true)/小于(inclusive=false)属性指定的值,也可以注释在字符串类型的属性上。 |
@DecimalMin(value=, inclusive=) | 值必须大于等于(inclusive=true)/小于(inclusive=false)属性指定的值,也可以注释在字符串类型的属性上。 |
@Digist(integer=,fraction=) | 数字格式检查。integer指定整数部分的最大长度,fraction指定小数部分的最大长度 |
@Future | 时间必须是未来的 |
@Past | 事件必须是过去的 |
@Max(value=) | 值必须小于等于value指定的值。不能注解在字符串类型属性上。 |
@Min(value=) | 值必须小于等于value指定的值。不能注解在字符串类型属性上 |
点赞转发关注,你的支持是我最大的动力!