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 リファレンスマニュアルも参照してください。
SmartValidator, Errors, ValidationUtils, DataBinder.setValidator(org.springframework.validation.Validator)| 修飾子と型 | メソッドと説明 |
|---|---|
boolean | supports(ClassSE<?> clazz) |
void | validate(ObjectSE target, Errors errors) 指定された target オブジェクトを検証します。このオブジェクトは、supports(Class) メソッドが通常 true を返した (または返すことになる) ClassSE である必要があります。 |
boolean supports(ClassSE<?> clazz)
void validate(ObjectSE target, Errors errors)
target オブジェクトを検証します。このオブジェクトは、supports(Class) メソッドが通常 true を返した (または返すことになる) ClassSE である必要があります。 提供された errors インスタンスは、通常、このバリデーターが参加する大規模なバインディングプロセスの一部として、結果として生じる検証エラーを報告するために使用できます。バインディングエラーは、通常、この呼び出しの前に errors インスタンスに事前登録されています。
target - 検証されるオブジェクト errors - 検証プロセスに関するコンテキスト状態 ValidationUtils