Spring MVC でユーザー入力をどのように検証しますか?
Oct 29, 2024 pm 06:30 PMSpring 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 サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?

2025年のトップ4 JavaScriptフレームワーク:React、Angular、Vue、Svelte

高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?

Spring Boot Snakeyaml 2.0 CVE-2022-1471問題修正
