<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>2.0.1</version>
</dependency> 其实springboot包含了jakarta.validation等依赖,我springboot包含的原依赖是2.0.2版本,查看maven官网 jakarta.validation的依赖也没几个。
所以只要springboot中包含了这个包不引入也是ok的。
2.重点来了!!!,springboot2.3.2.RELEASE后 @NotBlank失效 我们需要手动引进hibernate-validator包
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.17.Final</version>
<scope>compile</scope>
</dependency>
这两个依赖缺一不可,这就是@NotBlank不生效的原因。原因其实很简单,我引进这个依赖包后校验就生效了。
后端校验失效-关于javax.validation.Valid,javax.validation.constraints.NotBlank; @NotBlank 注解不生效产生的问题及解决
@NotBlank不生效
javax.validation.Validation使用方法
今天我们来谈谈后台验证Validation
后台开发需要对对象的传进来的参数进行校验,有专门的校验工具,validation bean 是基于JSR-303标准开发出来的,使用注解方式实现,及其方便,但是这只是一个接口,没有具体实现
Hibernate Validator是一个hibernate独立的包,可以直接引用,他实现了validation bean同时有做了扩展,比较强大。
要在pom.xml里面添加依赖:
<dependency
@NotBlank用于字符串的空值空串校验。
但是在实体类属性A中加上注解后,Controller层的外部调用实体类,前端传参时,不传属性A,仍然可以反序列化成功,@NotBlank无效。
应该都知道,当@NotBlank注解用于实体类的某个属性时,Controller层的实体对象前,要搭配@Valid注解使用。
但是如果加了,仍然没有效果呢?
不用考虑了,肯定是版本问题,适当的升高或降低校验依赖的版本。
我们引入的一般是这两个常用的:
Java 和 Hibernate
原因是2.3.0的spring-boot-starter-web没有引入validation对应的包
查看2.3.0以前的版本,以2.2.7版本为例spring-boot-starter-web-2.2.7.RELEASE.pom:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validati.
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
2.经常查找文档发现,validation-
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import lombok.Data;
@Data
public class User {
@NotBlank(message = "姓名不能为空")
private String n
今天遇到一个问题,测试的时候,表单校验都可以正常。请求数据之后,校验失效了,保持未请求数据之前的状态。
rule.js文件
test_noBlank(rule, value, callback) {
if (typeof (value) == 'object' && value.length == 2) {
if (value[0] === '' || valu...
@NotBlank 是 javax.validation.constraints 包下的一个注解,用于验证字符串是否为 null 或者长度是否大于 0。如果 @NotBlank 注解不生效,可能是以下原因导致的:
1. 没有启用验证功能:需要在项目中启用验证功能,通常是在 Spring Boot 项目中,需要配置 javax.validation.Validator 类的实例。
2. 未添加依赖:如果使用 Maven 或 Gradle 管理项目依赖,需要添加 javax.validation 包的依赖,以便在项目中使用相关注解。
3. 字符串为空格:@NotBlank 注解只验证字符串是否为 null 或长度是否大于 0,如果字符串只包含空格,则不符合要求。
4. 注解位置不正确:@NotBlank 注解只能用于字符串类型的字段或方法参数上,如果注解位置不正确,则不会生效。
5. 对象为 null:如果在验证对象时,该对象为 null,则无法进行验证,因此 @NotBlank 注解也不会生效。
后端校验失效-关于javax.validation.Valid,javax.validation.constraints.NotBlank; @NotBlank 注解不生效产生的问题及解决
CSDN-Ada助手: