在Spring MVC 中驗證使用者輸入:全面指南
驗證使用者輸入對於確保Web 中表單資料的完整性和可靠性至關重要應用程式。 Spring MVC 提供了多種方法來完成此任務,每種方法都有其優點和缺點。
方法 1:基於註解的驗證
對於簡單的驗證需求,Spring 3. x 及更高版本引入了 javax.validation.constraints 註解的使用。這些註解直接應用於 bean 屬性,將它們標記為必需的或受特定約束。例如:
<code class="java">public class User { @NotNull private String name; ... }</code>
在你的控制器中,你可以利用@Valid和@ModelAttribute來驗證:
<code class="java">@RequestMapping(value="/user", method=RequestMethod.POST) public createUser(Model model, @Valid @ModelAttribute("user") User user, BindingResult result){ if (result.hasErrors()){ // do something } else { // do something else } }</code>
方法二:手動驗證
對於更複雜的驗證需求,建議使用org.springframework.validation.Validator 介面手動實作驗證邏輯。
<code class="java">public class UserValidator implements Validator { @Override public boolean supports(Class clazz) { return User.class.equals(clazz); } @Override public void validate(Object target, Errors errors) { User user = (User) target; if(user.getName() == null) { errors.rejectValue("name", "your_error_code"); } // do "complex" validation here } }</code>
在你的控制器中:
<code class="java">@RequestMapping(value="/user", method=RequestMethod.POST) public createUser(Model model, @ModelAttribute("user") User user, BindingResult result){ UserValidator userValidator = new UserValidator(); userValidator.validate(user, result); if (result.hasErrors()){ // do something } else { // do something else } }</code>
方法3:組合方法
基於註釋的驗證和手動驗證可以利用兩種方法的優點。
警告:
驗證處理不應與異常處理混淆。驗證涉及應用程式的業務規則和資料約束,而異常處理則解決系統錯誤。
參考文獻:
以上是如何在 Spring MVC 中驗證使用者輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!