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 參數的載體字段為空,那么驗證將拋出異常。
和結束。我有個問題。你能提供所有代碼嗎?
添加回答
舉報