javascript
Spring MVC:Trgger手动验证表单对象
有時可能需要在Spring MVC @Controller中使用手動驗證。 使用Spring的org.springframework.validation.ValidationUtils類非常簡單。 了解如何在兩種不同的情況下調用驗證器。
方案1 –調用驗證
在這種情況下,我有一個帶有用戶名字段的用戶表單。 用戶名字段使用自定義驗證器進行驗證,以驗證例如數據庫中的存在。
public class User {@UserExistsprivate String username;}在控制器類中,我有一個處理該對象的POST方法的方法:
@Autowired private org.springframework.validation.Validator validator;@RequestMapping(value = "/user", method = RequestMethod.POST) public String validate(@ModelAttribute User user, Errors errors) {ValidationUtils.invokeValidator(validator, user, errors);if (errors.hasErrors()) {// error, show errors to the user}// success, form is valid! }org.springframework.validation.ValidationUtils是用于調用org.springframework.validation.Validator的類。
請注意,用戶參數后面是org.springframework.validation.Errors對象。 Spring初始化了這個對象,但是它是空的,可以傳遞給invokeValidator方法。
方案2 –通過提示調用驗證
在這種情況下,用戶表單變得更加復雜:
@GroupSequence(value = {ValidationOrder.First.class, ValidationOrder.Second.class}) interface ValidationOrder {interface First {}interface Second {} }public class User {@UserExists(groups = ValidationOrder.First.class)@UserIsEntitledToDiscount(groups = ValidationOrder.Second.class)private String username;}感謝@GroupSequence我可以決定驗證順序。 要觸發驗證,我需要將其他參數傳遞給invokeValidator方法,以便正確使用組:
ValidationUtils.invokeValidator(validator, user, errors, ValidationOrder.class);源代碼
源代碼包含所有這三種方法,因此您可以快速比較它們: https : //github.com/kolorobot/spring-mvc-beanvalidation11-demo
翻譯自: https://www.javacodegeeks.com/2016/04/spring-mvc-trgger-manual-validation-form-object.html
總結
以上是生活随笔為你收集整理的Spring MVC:Trgger手动验证表单对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gwt 嵌入html_GWT和HTML5
- 下一篇: 电信宽带怎么设置tp路由器电信tp路由器