springboot中使用@NotNull@NotBlank注解无效解决方法
我们在使用@NotNull注解的时候,一般在实体类的字段上加上@NouNull注解:
然后在controller类中的方法上添加上@Valid的注解(我们还可以给bean后紧跟一个BindingResult,就可以获取到校验的结果信息)
但是在进行测试的时候发现我们添加的注解失效了,原因如下:
springboot 2.3之前的集成在spring-boot-starter-web
里了,所以不需要额外引入包
springboot 2.3之后需要引入 spring-boot-starter-validation
引入如下依赖就行:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency>
若引起el依赖冲突:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> <exclusions> <exclusion> <groupId>org.glassfish</groupId> <artifactId>jakarta.el</artifactId> </exclusion> </exclusions> </dependency>
如果在引入上面依赖之后还是不能解决问题的话,再添加依赖(建议使用7.0.1.final及以上版本)
<dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> <version>7.0.1.Final</version> </dependency>
如果已经引入了hibernate-validator依赖,还是无效,可以尝试在配置文件添加以下参数:
spring.mvc.hiddenmethod.filter.enabled=true
上面这些就应该可以解决这个问题了
实在还不行就降低springboot版本就可以了。
https://www.jb51.net/program/294717nah.htm
个人学习笔记,记录日常学习,便于查阅及加深,仅为方便个人使用。