我已经遵循了几个指南来让@NotNull和@NotBlank注解工作,但我根本无法让它们工作。这是一个Spring Boot项目。我插入了这些依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<version>3.0.4</version>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>8.0.0.Final</version>
</dependency>
我在控制器中输入了@Valid,importando:
import javax.validation.Valid;
我使用了这样的注解:
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@NotNull(message = "name can't be null")
@NotBlank(message = "name can't be empty")
我试过许多办法,但没有一个能帮我
2条答案
按热度按时间voj3qocg1#
jakarta验证在以下依赖项中可用
取代
使用
spring-boot-starter-validation
并确保它与Sping Boot 保持相同的版本,重新加载项目,以便它可以拉取新的依赖项并删除hibernate,之后您可以使用jakarta导入,例如请记住,javax包在Sping Boot 2 / Spring 5中工作,之后包在Spring boot / Spring的新版本中从javax移动到jakarta。
另外,明智的做法是在父标签中定义spring版本,而不是在每个依赖标签中单独定义,它应该看起来像这样:
你所有的spring依赖项都将继承这个版本,更容易维护,更安全的是不要混淆一些可能导致问题的版本。
bpsygsoo2#
成功了!谢谢大家的帮助。对于所有和我有同样问题的人,在帖子中我被建议: