public interface Errors
Field names can be properties of the target object (e.g. "name"
 when binding to a customer object), or nested fields in case of
 subobjects (e.g. "address.street"). Supports subtree navigation
 via setNestedPath(String): for example, an
 AddressValidator validates "address", not being aware
 that this is a subobject of customer.
 
Note: Errors objects are single-threaded.
setNestedPath(java.lang.String), 
BindException, 
DataBinder, 
ValidationUtils| Modifier and Type | Field and Description | 
|---|---|
static String | 
NESTED_PATH_SEPARATOR
The separator between path elements in a nested path,
 for example in "customer.name" or "customer.address.street". 
 | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
addAllErrors(Errors errors)
Add all errors from the given  
Errors instance to this
 Errors instance. | 
List<ObjectError> | 
getAllErrors()
Get all errors, both global and field ones. 
 | 
int | 
getErrorCount()
Return the total number of errors. 
 | 
FieldError | 
getFieldError()
Get the first error associated with a field, if any. 
 | 
FieldError | 
getFieldError(String field)
Get the first error associated with the given field, if any. 
 | 
int | 
getFieldErrorCount()
Return the number of errors associated with a field. 
 | 
int | 
getFieldErrorCount(String field)
Return the number of errors associated with the given field. 
 | 
List<FieldError> | 
getFieldErrors()
Get all errors associated with a field. 
 | 
List<FieldError> | 
getFieldErrors(String field)
Get all errors associated with the given field. 
 | 
Class<?> | 
getFieldType(String field)
Return the type of a given field. 
 | 
Object | 
getFieldValue(String field)
Return the current value of the given field, either the current
 bean property value or a rejected update from the last binding. 
 | 
ObjectError | 
getGlobalError()
Get the first global error, if any. 
 | 
int | 
getGlobalErrorCount()
Return the number of global errors. 
 | 
List<ObjectError> | 
getGlobalErrors()
Get all global errors. 
 | 
String | 
getNestedPath()
Return the current nested path of this  
Errors object. | 
String | 
getObjectName()
Return the name of the bound root object. 
 | 
boolean | 
hasErrors()
Return if there were any errors. 
 | 
boolean | 
hasFieldErrors()
Are there any field errors? 
 | 
boolean | 
hasFieldErrors(String field)
Are there any errors associated with the given field? 
 | 
boolean | 
hasGlobalErrors()
Are there any global errors? 
 | 
void | 
popNestedPath()
Pop the former nested path from the nested path stack. 
 | 
void | 
pushNestedPath(String subPath)
Push the given sub path onto the nested path stack. 
 | 
void | 
reject(String errorCode)
Register a global error for the entire target object,
 using the given error description. 
 | 
void | 
reject(String errorCode,
      Object[] errorArgs,
      String defaultMessage)
Register a global error for the entire target object,
 using the given error description. 
 | 
void | 
reject(String errorCode,
      String defaultMessage)
Register a global error for the entire target object,
 using the given error description. 
 | 
void | 
rejectValue(String field,
           String errorCode)
Register a field error for the specified field of the current object
 (respecting the current nested path, if any), using the given error
 description. 
 | 
void | 
rejectValue(String field,
           String errorCode,
           Object[] errorArgs,
           String defaultMessage)
Register a field error for the specified field of the current object
 (respecting the current nested path, if any), using the given error
 description. 
 | 
void | 
rejectValue(String field,
           String errorCode,
           String defaultMessage)
Register a field error for the specified field of the current object
 (respecting the current nested path, if any), using the given error
 description. 
 | 
void | 
setNestedPath(String nestedPath)
Allow context to be changed so that standard validators can validate
 subtrees. 
 | 
static final String NESTED_PATH_SEPARATOR
"." = same as the
 nested property separator
 in the beans package.
String getObjectName()
void setNestedPath(String nestedPath)
For example, an address validator could validate the subobject "address" of a customer object.
nestedPath - nested path within this object,
 e.g. "address" (defaults to "", null is also acceptable).
 Can end with a dot: both "address" and "address." are valid.String getNestedPath()
Errors object.
 Returns a nested path with a dot, i.e. "address.", for easy building of concatenated paths. Default is an empty String.
void pushNestedPath(String subPath)
A popNestedPath() call will reset the original
 nested path before the corresponding
 pushNestedPath(String) call.
 
Using the nested path stack allows to set temporary nested paths for subobjects without having to worry about a temporary path holder.
For example: current path "spouse.", pushNestedPath("child") -> result path "spouse.child."; popNestedPath() -> "spouse." again.
subPath - the sub path to push onto the nested path stackpopNestedPath()void popNestedPath()
            throws IllegalStateException
IllegalStateException - if there is no former nested path on the stackpushNestedPath(java.lang.String)void reject(String errorCode)
errorCode - error code, interpretable as a message keyvoid reject(String errorCode, String defaultMessage)
errorCode - error code, interpretable as a message keydefaultMessage - fallback default messagevoid reject(String errorCode, Object[] errorArgs, String defaultMessage)
errorCode - error code, interpretable as a message keyerrorArgs - error arguments, for argument binding via MessageFormat
 (can be null)defaultMessage - fallback default messagevoid rejectValue(String field, String errorCode)
The field name may be null or empty String to indicate
 the current object itself rather than a field of it. This may result
 in a corresponding field error within the nested object graph or a
 global error if the current object is the top object.
field - the field name (may be null or empty String)errorCode - error code, interpretable as a message keygetNestedPath()void rejectValue(String field, String errorCode, String defaultMessage)
The field name may be null or empty String to indicate
 the current object itself rather than a field of it. This may result
 in a corresponding field error within the nested object graph or a
 global error if the current object is the top object.
field - the field name (may be null or empty String)errorCode - error code, interpretable as a message keydefaultMessage - fallback default messagegetNestedPath()void rejectValue(String field, String errorCode, Object[] errorArgs, String defaultMessage)
The field name may be null or empty String to indicate
 the current object itself rather than a field of it. This may result
 in a corresponding field error within the nested object graph or a
 global error if the current object is the top object.
field - the field name (may be null or empty String)errorCode - error code, interpretable as a message keyerrorArgs - error arguments, for argument binding via MessageFormat
 (can be null)defaultMessage - fallback default messagegetNestedPath()void addAllErrors(Errors errors)
Errors instance to this
 Errors instance.
 This is a convenience method to avoid repeated reject(..)
 calls for merging an Errors instance into another
 Errors instance.
 
Note that the passed-in Errors instance is supposed
 to refer to the same target object, or at least contain compatible errors
 that apply to the target object of this Errors instance.
errors - the Errors instance to merge inboolean hasErrors()
int getErrorCount()
List<ObjectError> getAllErrors()
ObjectError instancesboolean hasGlobalErrors()
true if there are any global errorshasFieldErrors()int getGlobalErrorCount()
getFieldErrorCount()List<ObjectError> getGlobalErrors()
ObjectError getGlobalError()
nullboolean hasFieldErrors()
true if there are any errors associated with a fieldhasGlobalErrors()int getFieldErrorCount()
getGlobalErrorCount()List<FieldError> getFieldErrors()
FieldError instancesFieldError getFieldError()
nullboolean hasFieldErrors(String field)
field - the field nametrue if there were any errors associated with the given fieldint getFieldErrorCount(String field)
field - the field nameList<FieldError> getFieldErrors(String field)
Implementations should support not only full field names like "name" but also pattern matches like "na*" or "address.*".
field - the field nameFieldError instancesFieldError getFieldError(String field)
field - the field namenullObject getFieldValue(String field)
Allows for convenient access to user-specified field values, even if there were type mismatches.
field - the field nameClass<?> getFieldType(String field)
Implementations should be able to determine the type even
 when the field value is null, for example from some
 associated descriptor.
field - the field namenull if not determinable