@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 ]