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: 組み合わせたアプローチ
注釈ベースの検証と手動検証の両方を組み合わせると、両方のアプローチの利点を活用できます。
警告:
検証処理を例外処理と混同しないでください。検証はアプリケーションのビジネス ルールとデータ制約に関係し、例外処理はシステム エラーに対処します。
参考:
以上がSpring MVC でユーザー入力をどのように検証しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。