Interface Validator
- All Known Subinterfaces:
SmartValidator
- All Known Implementing Classes:
CustomValidatorBean
,LocalValidatorFactoryBean
,OptionalValidatorFactoryBean
,SpringValidatorAdapter
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.
- Author:
- Rod Johnson
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionboolean
void
Validate the giventarget
object which must be of aClass
for which thesupports(Class)
method typically has returned (or would return)true
.
-
Method Details
-
supports
-
validate
Validate the giventarget
object which must be of aClass
for which thesupports(Class)
method typically has returned (or would return)true
.The supplied
errors
instance can be used to report any resulting validation errors, typically as part of a larger binding process which this validator is meant to participate in. Binding errors have typically been pre-registered with theerrors
instance before this invocation already.- Parameters:
target
- the object that is to be validatederrors
- contextual state about the validation process- See Also:
-