インターフェース Validator

すべての既知のサブインターフェース:
SmartValidator
すべての既知の実装クラス:
CustomValidatorBeanLocalValidatorFactoryBeanOptionalValidatorFactoryBeanSpringValidatorAdapter

public interface Validator
アプリケーション固有のオブジェクトのバリデーター。

このインターフェースは、インフラストラクチャやコンテキストとは完全に切り離されています。つまり、Web 層、データアクセス層、その他の層のオブジェクトのみを検証することとは連動していません。そのため、アプリケーションのどのレイヤーでも使用でき、検証ロジックのカプセル化を第一級オブジェクトとして独自にサポートします。

UserLogin インスタンスのさまざまな StringSE プロパティが空ではない(つまり、null ではなく、完全に空白で構成されていない)こと、および存在するパスワードが少なくとも 'MINIMUM_PASSWORD_LENGTH' であることを検証する、シンプルだが完全な Validator 実装を以下に示します。長さの文字。

public class UserLoginValidator implements Validator {

    private static final int MINIMUM_PASSWORD_LENGTH = 6;

    public boolean supports(Class clazz) {
       return UserLogin.class.isAssignableFrom(clazz);
    }

    public void validate(Object target, Errors errors) {
       ValidationUtils.rejectIfEmptyOrWhitespace(errors, "userName", "field.required");
       ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", "field.required");
       UserLogin login = (UserLogin) target;
       if (login.getPassword() != null
             && login.getPassword().trim().length() < MINIMUM_PASSWORD_LENGTH) {
          errors.rejectValue("password", "field.min.length",
                new Object[]{Integer.valueOf(MINIMUM_PASSWORD_LENGTH)},
                "The password must be at least [" + MINIMUM_PASSWORD_LENGTH + "] characters in length.");
       }
    }
 }

Validator インターフェースとエンタープライズアプリケーションにおけるそのロールの詳細については、Spring リファレンスマニュアルも参照してください。

作成者:
Rod Johnson
関連事項:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    boolean
    supports(ClassSE<?> clazz)
    提供された clazz のこの Validator validate インスタンスは可能ですか?
    void
    validate(ObjectSE target, Errors errors)
    提供された target オブジェクトを検証します。これは、supports(Class) メソッドが通常 true を返す(または返すと想定される)ClassSE でなければなりません。
  • メソッドの詳細

    • supports

      boolean supports(ClassSE<?> clazz)
      提供された clazz のこの Validator validate インスタンスは可能ですか?

      このメソッドは通常、次のよう実装されます。

      return Foo.class.isAssignableFrom(clazz);
      Foo は、validated になる実際のオブジェクトインスタンスのクラス(またはスーパークラス)です)
      パラメーター:
      clazz - この Validatorvalidate が可能かどうか尋ねられている ClassSE
      戻り値:
      この Validator が確かに提供された clazzvalidate インスタンスである場合、true 
    • validate

      void validate(ObjectSE target, Errors errors)
      提供された target オブジェクトを検証します。これは、supports(Class) メソッドが通常 true を返す(または返すと想定される)ClassSE でなければなりません。

      提供された errors インスタンスを使用して、結果の検証エラーを報告できます。

      パラメーター:
      target - 検証されるオブジェクト
      errors - 検証プロセスに関するコンテキスト状態
      関連事項: