前言
我有个需求,就是传入的参数不能为空,其实就是必传的意思,问了我们公司的前辈,他让我写上@Blank即可,写上之后一直报错:HV000030: No validator could be found for constraint 'javax.validation.constraints.NotBlank' validating type 'java.lang.Integer'. Check configuration for 'pageSize'
我的代码例如:
@Data
public class QueryVideoPageDTO {
private String userName;
@NotNull(message = "pageSize不能为空")
@Min(value = 1)
private Integer pageSize;
@NotBlank(message = "pageNum不能为空")
@Min(value = 1)
private Integer pageNum;
}
解决:将@NotBlank换成@NotNull
@Data
public class QueryVideoPageDTO {
private String userName;
@NotNull(message = "pageSize不能为空")
@Min(value = 1)
private Integer pageSize;
@NotBlank(message = "pageNum不能为空")
@Min(value = 1)
private Integer pageNum;
}
区别
直接看官方解释:
@NotNull
意思是使用此注解的属性不能是null,可以在任何类型的属性上使用。
@NotEmpty
意思是使用此注解的属性不能是null或空字符串(长度<=0);可以在字符串、Collection集合、Map集合、Array数组上使用;
@NotBlank
意思是此注解的属性不能为null,且必须包含一个非空白字符的字符串(长度>=0),可以在字符串上使用。
总结
@NotNull:可以在任何类型上使用 值不许为null
@NotEmpty:可以在字符串、Collection集合、Map集合、Array数组上使用;值不许为null和长度<=0的字符串
@NotBlank:仅可以在字符串上使用;值不许为null并且字符串长度必须>0,空格、回车、table之类的空白str都不行哦~