您好,我一直在尝试通过“JSR-303”验证其余请求的数据 代码如下-:
*pojo注释级别
@NotNull(message="Carrier ID cannot be null")
private String carrier;
*MessageStatusDoc 类
@Id
private String transactionId;
private String status;
private Key key;
private AccountDetail accountDetail;
*调用方法
saveMessage(@Valid @RequestBody MessageStatusDoc messageStatusDoc)
关键类包含载体字段
任何人都可以建议为什么我无法捕获错误..?
PS 当我尝试记录它时,该值在控制台上打印为 null ..
最佳答案
您提供的代码看起来不错。尽管您没有提供 Controller 注释。例如
@PostMapping
public void saveMessage(@Valid @RequestBody MessageStatusDoc messageStatusDoc)
但是一定要添加
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
到你的pom文件(至少对于Spring Boot >= 2.3.0)。 这将包括验证 api 以及执行实际验证工作的 hibernate validator 。
此外,如果外部包中有注释,请尽量不要混合
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
</dependency>
和
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
希望这有帮助!
关于java - 对于其余请求,验证在 Spring boot 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52217354/