日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring MVC:Trgger手动验证表单对象

發布時間:2023/12/3 javascript 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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手动验证表单对象的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。