所以我有一個字符串,我需要檢查一個有效的格式,我使用了一種模式,以及是否輸入根據我使用自定義驗證器的一些業務規則,值是有效的。現在,如果只有前者沒有發生時才顯示與後者相關的錯誤信息,則客戶會更喜歡它。但據我所知,沒有辦法做出這種區分。 或者任何人都可以想辦法做到這一點?彈簧窗體錯誤標記:檢查特定的錯誤(如果不爲空例如只顯示無效)
1
A
回答
0
訣竅是:有兩個不同的約束條件(註解),
- 一個用於模式,接受空,
- 和第二不空。
默認情況下,javax.validation.constraints.Pattern
「驗證程序」接受空值。
接受字符串。
null
元素被認爲是有效的。 (javax.validation.constraints.Pattern的javadoc)
所以,你到底需要做什麼,這是:
@NotNull(message="{validation.notNull}")
@Pattern(pattern="123" message="{validation.notPattern}")
String myString;
補充:
(點評)
不是真的所需的行爲,因爲我想重用bean對象,但每個頁面的條件不相同。 - 傑克·尼克爾斯5分鐘前
在這種情況下,你可以使用所謂的groups
(見JSR303 Bean Validation Spec, Chapter 4.1.2 groups - 還有一個例子)。使用@Pattern
的默認組和@NotNull
的另一組。現在,您可以根據您爲驗證指定的組啓用或禁用驗證規則。
validator.validate(myObject, Default.class);
validator.validate(myObject, MyGroup.class);
還有一個問題:在Spring 3.0中,您不能指定要用於自動驗證過程的組。但在3.1中,您可以根據該功能請求SPR-6373(我還沒有嘗試過,但我希望它能正常工作)
相關問題
- 1. 彈簧窗體 - 如何檢查特定路徑上的錯誤
- 2. 彈簧窗體標記錯誤
- 3. 彈簧窗體標記錯誤(綁定結果)
- 4. 彈簧啓動1.3.5窗體:錯誤不顯示爲jsp
- 5. 彈簧窗體:錯誤定製
- 6. 顯示速度模板上的所有彈簧窗體錯誤
- 7. Django窗體不顯示錯誤時空
- 8. 檢查使用彈簧綁定錯誤的JSTL/Spring-MVC標籤
- 9. 窗體驗證,div標記中的錯誤不會顯示
- 10. 窗體:錯誤沒有顯示錯誤
- 11. 窗體:錯誤不顯示錯誤列表,但窗體:錯誤path =「x」工程
- 12. 彈簧顯示錯誤消息
- 13. 未顯示彈簧驗證錯誤
- 14. 如何顯示此Django窗體錯誤?
- 15. 在窗體外顯示彈出窗體錯誤
- 16. 彈簧窗體標籤在jsp頁面拋出錯誤
- 17. Kotlin無效檢查錯誤
- 18. SQL查詢不執行 - 顯示無效的標識符錯誤
- 19. 如果窗體中的文本框發送空白,如何顯示錯誤?
- 20. 如果在Symfony2中無效,如何重定向到帶有錯誤的窗體?
- 21. 元標記顯示錯誤
- 22. 錯誤彈簧3.1.2
- 23. 語法錯誤的標記「如果」,無效AnnotationName
- 24. automapper顯示錯誤「指定的轉換無效」。錯誤
- 25. 在Spring窗體標記中顯示Date(java.sql.Date)時發生錯誤
- 26. 如何以較少的信息顯示彈簧錯誤堆棧
- 27. 如果選擇了無效參數,如何顯示404錯誤?
- 28. 如何在C#窗體窗體對話框中顯示標準錯誤圖標?
- 29. 標記爲tableviewcell顯示錯誤值
- 30. 表單提交不會顯示錯誤消息如果爲空
由於我想重用bean對象,但其條件不相同每頁。 –
@Jack Nickels:看到我的擴展答案 – Ralph