2014-05-20 50 views
5

我在我的bean的每個字段上都有多個驗證註釋,但我想在我使用JSR 303的Spring MVC應用程序中僅顯示每個字段的第一個失敗消息。它正在評估所有約束並顯示每個字段的所有消息消息。當一個字段爲空時,我不想評估它的最小和最大限制。每個字段只顯示一條錯誤消息與JSR 303

我嘗試過使用組,但它不像預期的那樣工作,而且我還需要更多地調用validator.validate()之類的validator.validate()來避免。

有沒有其他辦法可以通過編寫一些驗證類來實現這一點?

我對每個字段至少有3個限制,最多5個。顯示每個字段的所有消息看起來都不太好。我起訴春天4.x和休眠4.x

回答

1

要走的路是通過組和序列。如果組內的約束失敗,那麼這是唯一確保驗證順序和終止驗證的便攜式功能。您是否可以不將bean中的約束分配給相應的組,然後重新定義bean本身的默認組序列?另請參閱http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#section-default-group-class

+0

對我而言,組無法按預期工作。此外,我需要通過傳遞這些組來顯式調用驗證器。 – user1614862

+0

組織發生的事情是...可以說我有兩個表單bean變量作爲名稱和電子郵件,然後我對這兩個變量和「@Email」用於電子郵件變量的約束條件都是「@NotEmpty」。現在,如果我不輸入任何關於電子郵件字段的名稱字段和錯誤的電子郵件格式,那麼我應該在電子郵件字段的名稱字段和「無效的電子郵件」錯誤消息中出現「此字段是必需的」錯誤消息。但對於羣組而言,它僅顯示名稱字段的錯誤消息,而不顯示電子郵件字段的錯誤消息。因爲只有第一組字段被驗證。 – user1614862

+0

你是對的你的具體用例目前不支持。另見https://hibernate.atlassian.net/browse/HV-462和https://hibernate.atlassian.net/browse/BVAL-248。所以圍繞羣組和羣組順序進行繁瑣的工作。查看高溫問題。 – Hardy

相關問題