ホームページ >Java >&#&チュートリアル >Spring MVC アプリケーションでユーザー入力を検証するにはどうすればよいですか?

Spring MVC アプリケーションでユーザー入力を検証するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-02 07:41:29323ブラウズ

How can I validate user inputs in a Spring MVC application?

Spring MVC でユーザー入力を検証する方法

はじめに

Web アプリケーションを構築する場合、ユーザー入力の妥当性を確保する重要です。 Spring MVC はフォーム検証のための複数のメソッドを提供しており、それぞれに利点と特定のシナリオへの適合性があります。

メソッド 1: アノテーションベースの検証

Spring 3.x ではアノテーションが導入されています(例: @NotNull) 簡潔なフィールドレベルの検証用。これらのアノテーションは JSR-303 標準の一部です。

例:

<code class="java">public class User {

    @NotNull
    private String name;

    // ...
}</code>

コントローラー内:

<code class="java">@PostMapping("/user")
public void createUser(@Valid @ModelAttribute User user, BindingResult result) {
    // Check for validation errors in the `result` object.
}</code>

方法 2: 手動検証

複雑な検証ロジックのために、Spring は org.springframework.validation.Validator インターフェイスを提供します。カスタム バリデータを実装して、特定の検証を実行できます。

例:

<code class="java">public class UserValidator implements Validator {

    // Validation code here

}</code>

コントローラー内:

<code class="java">@PostMapping("/user")
public void createUser(@ModelAttribute User user, BindingResult result) {
    UserValidator validator = new UserValidator();
    validator.validate(user, result);

    // Check for validation errors in the `result` object.
}</code>

メソッド3: ハイブリッド アプローチ

注釈と手動検証の両方を組み合わせることができます。単純な検証にはアノテーションを使用し、複雑なロジックにはバリデータを使用します。

例:

<code class="java">public class User {

    @NotNull
    private String name;

    // ...
}</code>

カスタム バリデータ:

<code class="java">public class UserValidator implements Validator {

    // Complex validation code here

}</code>

コントローラー内:

<code class="java">@PostMapping("/user")
public void createUser(@Valid @ModelAttribute User user, BindingResult result,
                     UserValidator validator) {
    validator.validate(user, result);

    // Check for validation errors in the `result` object.
}</code>

追加の考慮事項

  • 検証処理を例外処理と混同しないでください。
  • 維持するために、コントローラーでのインライン検証は避けてください。無駄がなく、保守可能です。
  • 複雑な検証ロジックを抽象化するには、カスタム検証アノテーションの使用を検討してください。

参照:

  • [Bean Spring での検証](http://www.codejavu.com/platform/spring/bean-validation-with-spring-annotations/)
  • [Spring MVC での検証](https://www.baeldung .com/spring-mvc-validation)
  • [検証に関する Spring ドキュメント](https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/web.html# mvc-ann-validation)

以上がSpring MVC アプリケーションでユーザー入力を検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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