3 回答
TA贡献1821条经验 获得超6个赞
您提供的代码看起来不错。尽管您没有提供控制器注释。例如
@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 以及执行实际验证工作的休眠验证器。
此外,如果在外部包中有注释尽量不要混合
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
</dependency>
和
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
希望这可以帮助!
TA贡献1982条经验 获得超2个赞
这是示例。
我假设下面的课程是您的 MessageStatusDoc。
承运人领域是您验证的需要。
public class MessageStatusDoc {
@Id
private String transactionId;
private String status;
private Key key;
@NotNull(message="Carrier ID cannot be null")
private String carrier;
//getter setter
}
这是使用 MessageStatusDoc 作为参数的方法
public void saveMessage(@Valid @RequestBody MessageStatusDoc messageStatusDoc) {
//nothing to do for now
}
如果你像给定的例子那样做得很好,那么如果任何方法调用 saveMessage 方法但 messageStatusDoc 参数的载体字段为空,那么验证将抛出异常。
和结束。我有个问题。你能提供所有代码吗?
添加回答
举报