首頁 > Java > java教程 > 如何在 Spring MVC 中驗證使用者輸入?

如何在 Spring MVC 中驗證使用者輸入?

Susan Sarandon
發布: 2024-10-29 18:30:02
原創
905 人瀏覽過

How do you validate user input in Spring MVC?

在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:組合方法

基於註釋的驗證和手動驗證可以利用兩種方法的優點。

警告:

驗證處理不應與異常處理混淆。驗證涉及應用程式的業務規則和資料約束,而異常處理則解決系統錯誤。

參考文獻:

  • [關於Bean 驗證的部落格文章] (https://dzone.com/articles/bean-validation-without-ejb )
  • [關於使用Spring MVC 進行驗證的部落格文章](https://www.baeldung.com/spring-mvc-validation )
  • [Spring 驗證文件](https:/ /docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/validation/annotation/package-summary.html)

以上是如何在 Spring MVC 中驗證使用者輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板