@Valid注解与使用

it2024-10-04  50

作用

@Valid用于检验变量的值是否符合设定好的规则。

可以简化校验,减少if  else的代码量

 

使用

通常与@RequestBody一起使用,接收传入的json并对json转换到POJO的值进行检验

@RequestBody @Valid 或者@Valid @RequestBody都可以

然后在方法中常常使用BindingResult接收验证失败信息(即POJO中规则的message内容)及

public Result getUser(@RequestBody @Valid User user, BindingResult bindingResult){ if (bindingResult.hasErrors()) { //获取到校验失败的message内容信息 String defaultMessage = bindingResult.fieldError.getDefaultMessage(); //……后面省略 } }

 

定义规则

这个是网上罗列的一些POJO中变量的规则,这些注释都有message属性,当不符合规则就显示message的自定义内容

@Min(value=1,message="当前页必须大于0") private int page = 1; @Min(value=1,message="每页记录数必须大于0") @Max(value = 100, message = "记录数最大为999") private int record = 10; @Email(message = "邮箱格式不正确") private String email; 限制说明@Null限制只能为null@NotNull限制必须不为null@AssertFalse限制必须为false@AssertTrue限制必须为true@DecimalMax(value)限制必须为一个不大于指定值的数字@DecimalMin(value)限制必须为一个不小于指定值的数字@Digits(integer,fraction)限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction@Future限制必须是一个将来的日期@Max(value)限制必须为一个不大于指定值的数字@Min(value)限制必须为一个不小于指定值的数字@Past限制必须是一个过去的日期@Pattern(value)限制必须符合指定的正则表达式@Size(max,min)限制字符长度必须在min到max之间@Past验证注解的元素值(日期类型)比当前时间早@NotEmpty验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0)@NotBlank验证注解的元素值不为空(不为null、去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格@Email验证注解的元素值是Email,也可以通过正则表达式和flag指定自定义的email格式

 

参考了十分全面的一篇博客,看着做一个记录学习  https://blog.csdn.net/weixin_41133233/article/details/90448300

最新回复(0)