將代碼解析為錯誤訊息
我們涵蓋了資料繫結和驗證。本節涵蓋輸出與驗證錯誤對應的訊息。在前一節中顯示的範例中,我們拒絕了 name
和 age
欄位。如果我們想要使用 MessageSource
輸出錯誤訊息,我們可以透過使用我們在拒絕欄位時提供的錯誤代碼(在本例中為「name」和「age」)來執行此操作。當您呼叫(直接或間接,例如,透過使用 ValidationUtils
類別)rejectValue
或 Errors
介面中的其他 reject
方法之一時,底層實作不僅會註冊您傳入的代碼,還會註冊許多其他錯誤代碼。MessageCodesResolver
決定 Errors
介面註冊哪些錯誤代碼。預設情況下,使用 DefaultMessageCodesResolver
,它(例如)不僅註冊您提供的代碼的訊息,還註冊包含您傳遞給 reject 方法的欄位名稱的訊息。因此,如果您使用 rejectValue("age", "too.darn.old")
拒絕欄位,除了 too.darn.old
代碼之外,Spring 還會註冊 too.darn.old.age
和 too.darn.old.age.int
(第一個包含欄位名稱,第二個包含欄位的類型)。這樣做是為了方便開發人員在定位錯誤訊息時提供協助。
有關 MessageCodesResolver
和預設策略的更多資訊,請參閱 MessageCodesResolver
和 DefaultMessageCodesResolver
的 javadoc。