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

问题:@NotBlank用于字符串的空值空串校验。但是在实体类属性A中加上注解后,Controller层的外部调用实体类,前端传参时,不传属性A,仍然可以反序列化成功,@NotBlank无效。解决:应该都知道,当@NotBlank注解用于实体类的某个属性时,Controller层的实体对象前,要搭配@Valid注解使用。但是如果加了,仍然没有效果呢?不用考虑了,肯定是版本问题,适当的升高或降低校验依赖的版本。我们引入的一般是这两个常用的:Java 和 Hibernate &
这篇文章主要介绍了如何解决@NotBlank不生效的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教。 1.解决@NotBlank不生效 最近做一个新项目,写新接口时发现@NotBlank @NotEmpty不生效,@NotNull则生效,令人费解。仔细检查一下2步骤 step1、Controller层接口入参处加@Validated注解(org.sp...
@NotNull 验证对象是否不为null, 无法查检长度为0的字符串. @NotBlank 检查约束 (字符串) 是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格. @NotEmpty 检查(集合)约束元素是否为NULL或者是EMPTY. @Data @AllArgsConstructor @NoArgsConstructor @Builder public class DepartmentDto extends BaseDto { @NotBlank(mes...
常用校验注解@NotEmpty,@NotBlank,@NotNull,@Valid,@Validated用法区别,以及搭配 BindingResult使用,嵌套验证等《使用|CSDN创作打卡》
文章目录一、常用注解@NotEmpty,@NotBlank,@NotNull介绍二、@Valid与@Validated的使用与区别2.1@Valid与@Validated区别:2.2嵌套验证三、总结 一、常用注解@NotEmpty,@NotBlank,@NotNull介绍 包位置:javax.validation.constraints.xxx @NotEmpty 用在集合上面,一般用来校验List类型(不能注释枚举),而且长度必须大于0 @NotBlank 用在String上面,一般用来校验Stri
@NotBlank@NotNull@NotEmpty不生效的原因 org.hibernate.validator.constraints.NotBlank 过时了要使用 javax.validation.constraints.NotBlank 1、三个注释的区别是 三个注释都是被标记的属性不能为空。那么不生效的原因是因为三者是有区别的,使用错误就会导致验证不会生效。 @NotNull 和 @NotEmpty 和@NotBlank 区别 @NotEmpty 用在集合类上面 @NotBlank 用在S
回答: 当使用实体类中的@NotBlank注解时,需要确保使用的是Java自带的@NotBlank注解,而不是Hibernate下的注解。因此,在实体类中导入的@NotBlank注解应该使用javax.validation.constraints.NotBlank而不是org.hibernate.validator.constraints.NotBlank。同时,还需要确保在pom.xml文件中添加了javax.validation和hibernate-validator的依赖。如果依然存在@NotBlank注解不生效的问题,可能是由于缺少配置或其他因素导致的,可以进一步检查代码逻辑、配置文件和相关依赖是否正确使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [@NotBlank注解不生效解决方法](https://blog.csdn.net/numbbe/article/details/118711371)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [java中,如何解决@NotBlank不生效的问题 @NotBlank @NotEmpty不生效,以及对象嵌套问题...](https://blog.csdn.net/j610152753/article/details/127201199)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]