@NotBlank用于字符串的空值空串校验。
但是在实体类属性A中加上注解后,Controller层的外部调用实体类,前端传参时,不传属性A,仍然可以反序列化成功,@NotBlank无效。
当@NotBlank注解用于实体类的某个属性时,Controller层的实体对象前,要搭配@Valid注解使用。
问题就是加了,也没有效果。
版本问题,适当的升高或降低校验依赖的版本。
我们引入的一般是这两个常用的:
Java 和 Hibernate
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
通过修改版本,基本上百分百可以解决问题。
如果还是不行,试一下奇葩的解法(有效)。
1、实体类中@NotBlank注解使用hibernate下的,Controller中@Valid使用java下的。
import javax.validation.constraints.NotBlank;
import org.hibernate.validator.constraints.NotBlank;
2、Controller类上边加上@Validated注解。