我嘗試了如何在驗證訊息中獲取屬性名稱中提到的方法,但無法將其應用于以下情況。
@Data
public class CompanyRequest {
@PositiveOrZero(message = "validation.amount.positiveOrZero")
int quantity;
// code omitted for brevity
}
這是我的*.properties檔案有訊息:
validation.amount.positiveOrZero=The ${fieldName} value must be positive or zero
那么,如何在驗證訊息中使用屬性名稱?
uj5u.com熱心網友回復:
${fieldName}如果不對進行評估的核心機制進行重大修改,就無法在注釋中輕松檢索。
考慮到每個欄位的名稱不同,實作您想要的更簡單的方法如下。
在屬性檔案中放置屬性
validation.amount.positiveOrZero= value must be positive or zero
然后將代碼中的注解定義為
@PositiveOrZero(message = "The quantity {validation.amount.positiveOrZero}")
int quantity;
編輯:
似乎該屬性不應在簡單的 application.properties 檔案中定義,而應ValidationMessages.properties在類路徑中命名的另一個檔案中定義。
如此處所述
setValidationMessageSource(MessageSource messageSource) 指定一個自定義 Spring MessageSource 來決議驗證訊息,而不是依賴于類路徑中 JSR-303 的默認“ValidationMessages.properties”包。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/450502.html
