ホームページ >Java >&#&チュートリアル >Spring MVC でユーザー入力をどのように検証しますか?

Spring MVC でユーザー入力をどのように検証しますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-29 18:30:02908ブラウズ

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>

方法 2: 手動検証

より複雑な検証要件の場合は、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。