接口 Validator

  • 所有已知子接口:
    SmartValidator
    所有已知实现类:
    CustomValidatorBean, LocalValidatorFactoryBean, OptionalValidatorFactoryBean, SpringValidatorAdapter

    public interface Validator
    A validator for application-specific objects.

    This interface is totally divorced from any infrastructure or context; that is to say it is not coupled to validating only objects in the web tier, the data-access tier, or the whatever-tier. As such it is amenable to being used in any layer of an application, and supports the encapsulation of validation logic as a first-class citizen in its own right.

    Find below a simple but complete Validator implementation, which validates that the various String properties of a UserLogin instance are not empty (that is they are not null and do not consist wholly of whitespace), and that any password that is present is at least 'MINIMUM_PASSWORD_LENGTH' characters in length.

     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.");
           }
        }
     }

    See also the Spring reference manual for a fuller discussion of the Validator interface and its role in an enterprise application.

    作者:
    Rod Johnson
    另请参阅:
    SmartValidator, Errors, ValidationUtils
    • 方法详细资料

      • supports

        boolean supports​(Class<?> clazz)
        Can this Validatorvalidate instances of the supplied clazz?

        This method is typically implemented like so:

        return Foo.class.isAssignableFrom(clazz);
        (Where Foo is the class (or superclass) of the actual object instance that is to be validated.)
        参数:
        clazz - the Class that this Validator is being asked if it can validate
        返回:
        true if this Validator can indeed validate instances of the supplied clazz
      • validate

        void validate​(Object target,
                      Errors errors)
        Validate the supplied target object, which must be of a Class for which the supports(Class) method typically has (or would) return true.

        The supplied errors instance can be used to report any resulting validation errors.

        参数:
        target - the object that is to be validated
        errors - contextual state about the validation process
        另请参阅:
        ValidationUtils