@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注解


Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐