Top Description Fields Methods
org.springframework.validation

public Interface Errors

Known Direct Subinterfaces
org.springframework.validation.BindingResult
Known Direct Implementers
org.springframework.validation.SimpleErrors, org.springframework.validation.method.ParameterErrors, org.springframework.validation.AbstractErrors
Imports
java.util.List, .Optional, java.util.function.Function, java.util.stream.Stream, org.springframework.beans.PropertyAccessor, org.springframework.lang.Nullable

Stores and exposes information about data-binding and validation errors for a specific object.

Field names are typically properties of the target object (e.g. "name" when binding to a customer object). Implementations may also support nested fields in case of nested objects (e.g. "address.street"), in conjunction with subtree navigation via setNestedPath: for example, an AddressValidator may validate "address", not being aware that this is a nested object of a top-level customer object.

Note

Errors objects are single-threaded.

Authors
Rod Johnson, Juergen Hoeller
See Also
Validator, ValidationUtils, SimpleErrors, BindingResult

Field Summary

Modifier and TypeField and Description
public static final String
NESTED_PATH_SEPARATOR

The separator between path elements in a nested path, for example in "customer.name" or "customer.address.street".

Method Summary

Modifier and TypeMethod and Description
public default void
addAllErrors(Errors
the Errors instance to merge in
errors
)

Add all errors from the given Errors instance to this Errors instance.

public default <
the exception type to be thrown
T extends Throwable
>
void
failOnError(Function<String, T>
a function mapping the message to the exception, e.g. IllegalArgumentException::new or IllegalStateException::new
messageToException
)

Throw the mapped exception with a message summarizing the recorded errors.

public default List<ObjectError>

Returns:

a list of ObjectError/FieldError instances
getAllErrors
()

Get all errors, both global and field ones.

public default int
getErrorCount()

Determine the total number of errors.

public default FieldError

Returns:

the field-specific error, or null
getFieldError
()

Get the first error associated with a field, if any.

public default FieldError

Returns:

the field-specific error, or null
getFieldError
(String
the field name
field
)

Get the first error associated with the given field, if any.

public default int
getFieldErrorCount()

Determine the number of errors associated with a field.

public default int
getFieldErrorCount(String
the field name
field
)

Determine the number of errors associated with the given field.

public List<FieldError>

Returns:

a List of FieldError instances
getFieldErrors
()

Get all errors associated with a field.

public default List<FieldError>

Returns:

a List of FieldError instances
getFieldErrors
(String
the field name
field
)

Get all errors associated with the given field.

public default Class<?>

Returns:

the type of the field, or null if not determinable
getFieldType
(String
the field name
field
)

Determine the type of the given field, as far as possible.

public Object

Returns:

the current value of the given field
getFieldValue
(String
the field name
field
)

Return the current value of the given field, either the current bean property value or a rejected update from the last binding.

public default ObjectError

Returns:

the global error, or null
getGlobalError
()

Get the first global error, if any.

public default int
getGlobalErrorCount()

Determine the number of global errors.

public List<ObjectError>

Returns:

a list of ObjectError instances
getGlobalErrors
()

Get all global errors.

public default String
getNestedPath()

Return the current nested path of this Errors object.

public String
getObjectName()

Return the name of the bound root object.

public default boolean
hasErrors()

Determine if there were any errors.

public default boolean
hasFieldErrors()

Determine if there were any errors associated with a field.

public default boolean
hasFieldErrors(String
the field name
field
)

Determine if there were any errors associated with the given field.

public default boolean
hasGlobalErrors()

Determine if there were any global errors.

public default void
popNestedPath()

Pop the former nested path from the nested path stack.

public default void
pushNestedPath(String
the sub path to push onto the nested path stack
subPath
)

Push the given sub path onto the nested path stack.

public default void
reject(String
error code, interpretable as a message key
errorCode
)

Register a global error for the entire target object, using the given error description.

public default void
reject(String
error code, interpretable as a message key
errorCode
,
String
fallback default message
defaultMessage
)

Register a global error for the entire target object, using the given error description.

public void
reject(String
error code, interpretable as a message key
errorCode
,
Object[]
error arguments, for argument binding via MessageFormat (can be null)
errorArgs
,
String
fallback default message
defaultMessage
)

Register a global error for the entire target object, using the given error description.

public default void
rejectValue(String
the field name (may be null or empty String)
field
,
String
error code, interpretable as a message key
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.

public default void
rejectValue(String
the field name (may be null or empty String)
field
,
String
error code, interpretable as a message key
errorCode
,
String
fallback default message
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.

public void
rejectValue(String
the field name (may be null or empty String)
field
,
String
error code, interpretable as a message key
errorCode
,
Object[]
error arguments, for argument binding via MessageFormat (can be null)
errorArgs
,
String
fallback default message
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.

public default void
setNestedPath(String
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.
nestedPath
)

Allow context to be changed so that standard validators can validate subtrees.

public String
toString()

Return a summary of the recorded errors, e.g. for inclusion in an exception message.

Field Detail

NESTED_PATH_SEPARATORback to summary
public static final String NESTED_PATH_SEPARATOR

The separator between path elements in a nested path, for example in "customer.name" or "customer.address.street".

"." = same as the nested property separator in the beans package.

Method Detail

addAllErrorsback to summary
public default void addAllErrors(Errors errors)

Add all errors from the given 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.

The default implementation throws UnsupportedOperationException since not all Errors implementations support #addAllErrors.

Parameters
errors:Errors

the Errors instance to merge in

See Also
getAllErrors()
failOnErrorback to summary
public default <T extends Throwable> void failOnError(Function<String, T> messageToException) throws Function-:T

Throw the mapped exception with a message summarizing the recorded errors.

Parameters
<T>
the exception type to be thrown
messageToException:Function<String, T>

a function mapping the message to the exception, e.g. IllegalArgumentException::new or IllegalStateException::new

Since
6.1
See Also
toString()
getAllErrorsback to summary
public default List<ObjectError> getAllErrors()

Get all errors, both global and field ones.

Returns:List<ObjectError>

a list of ObjectError/FieldError instances

See Also
getGlobalErrors(), getFieldErrors()
getErrorCountback to summary
public default int getErrorCount()

Determine the total number of errors.

See Also
getGlobalErrorCount(), getFieldErrorCount()
getFieldErrorback to summary
public default FieldError getFieldError()

Get the first error associated with a field, if any.

Returns:FieldError

the field-specific error, or null

Annotations
@Nullable
See Also
getGlobalError()
getFieldErrorback to summary
public default FieldError getFieldError(String field)

Get the first error associated with the given field, if any.

Parameters
field:String

the field name

Returns:FieldError

the field-specific error, or null

Annotations
@Nullable
See Also
getFieldError()
getFieldErrorCountback to summary
public default int getFieldErrorCount()

Determine the number of errors associated with a field.

See Also
getGlobalErrorCount()
getFieldErrorCountback to summary
public default int getFieldErrorCount(String field)

Determine the number of errors associated with the given field.

Parameters
field:String

the field name

See Also
getFieldErrorCount()
getFieldErrorsback to summary
public List<FieldError> getFieldErrors()

Get all errors associated with a field.

Returns:List<FieldError>

a List of FieldError instances

See Also
getGlobalErrors()
getFieldErrorsback to summary
public default List<FieldError> getFieldErrors(String field)

Get all errors associated with the given field.

Implementations may support not only full field names like "address.street" but also pattern matches like "address.*".

Parameters
field:String

the field name

Returns:List<FieldError>

a List of FieldError instances

See Also
getFieldErrors()
getFieldTypeback to summary
public default Class<?> getFieldType(String field)

Determine the type of the given field, as far as possible.

Implementations should be able to determine the type even when the field value is null, for example from some associated descriptor.

Parameters
field:String

the field name

Returns:Class<?>

the type of the field, or null if not determinable

Annotations
@Nullable
See Also
getFieldValue(String)
getFieldValueback to summary
public 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.

Allows for convenient access to user-specified field values, even if there were type mismatches.

Parameters
field:String

the field name

Returns:Object

the current value of the given field

Annotations
@Nullable
See Also
getFieldType(String)
getGlobalErrorback to summary
public default ObjectError getGlobalError()

Get the first global error, if any.

Returns:ObjectError

the global error, or null

Annotations
@Nullable
See Also
getFieldError()
getGlobalErrorCountback to summary
public default int getGlobalErrorCount()

Determine the number of global errors.

See Also
getFieldErrorCount()
getGlobalErrorsback to summary
public List<ObjectError> getGlobalErrors()

Get all global errors.

Returns:List<ObjectError>

a list of ObjectError instances

See Also
getFieldErrors()
getNestedPathback to summary
public default String getNestedPath()

Return the current nested path of this Errors object.

Returns a nested path with a dot, i.e. "address.", for easy building of concatenated paths. Default is an empty String.

See Also
setNestedPath(String)
getObjectNameback to summary
public String getObjectName()

Return the name of the bound root object.

hasErrorsback to summary
public default boolean hasErrors()

Determine if there were any errors.

See Also
hasGlobalErrors(), hasFieldErrors()
hasFieldErrorsback to summary
public default boolean hasFieldErrors()

Determine if there were any errors associated with a field.

See Also
hasGlobalErrors()
hasFieldErrorsback to summary
public default boolean hasFieldErrors(String field)

Determine if there were any errors associated with the given field.

Parameters
field:String

the field name

See Also
hasFieldErrors()
hasGlobalErrorsback to summary
public default boolean hasGlobalErrors()

Determine if there were any global errors.

See Also
hasFieldErrors()
popNestedPathback to summary
public default void popNestedPath() throws IllegalStateException

Pop the former nested path from the nested path stack.

Exceptions
IllegalStateException:
if there is no former nested path on the stack
See Also
pushNestedPath(String)
pushNestedPathback to summary
public default void pushNestedPath(String subPath)

Push the given sub path onto the nested path stack.

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.

The default implementation throws UnsupportedOperationException since not all Errors implementations support nested paths.

Parameters
subPath:String

the sub path to push onto the nested path stack

See Also
popNestedPath()
rejectback to summary
public default void reject(String errorCode)

Register a global error for the entire target object, using the given error description.

Parameters
errorCode:String

error code, interpretable as a message key

See Also
reject(String, Object[], String)
rejectback to summary
public default void reject(String errorCode, String defaultMessage)

Register a global error for the entire target object, using the given error description.

Parameters
errorCode:String

error code, interpretable as a message key

defaultMessage:String

fallback default message

See Also
reject(String, Object[], String)
rejectback to summary
public void reject(String errorCode, Object[] errorArgs, String defaultMessage)

Register a global error for the entire target object, using the given error description.

Parameters
errorCode:String

error code, interpretable as a message key

errorArgs:Object[]

error arguments, for argument binding via MessageFormat (can be null)

defaultMessage:String

fallback default message

See Also
rejectValue(String, String, Object[], String)
rejectValueback to summary
public default 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.

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.

Parameters
field:String

the field name (may be null or empty String)

errorCode:String

error code, interpretable as a message key

See Also
rejectValue(String, String, Object[], String)
rejectValueback to summary
public default 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.

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.

Parameters
field:String

the field name (may be null or empty String)

errorCode:String

error code, interpretable as a message key

defaultMessage:String

fallback default message

See Also
rejectValue(String, String, Object[], String)
rejectValueback to summary
public 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.

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.

Parameters
field:String

the field name (may be null or empty String)

errorCode:String

error code, interpretable as a message key

errorArgs:Object[]

error arguments, for argument binding via MessageFormat (can be null)

defaultMessage:String

fallback default message

See Also
reject(String, Object[], String)
setNestedPathback to summary
public default void setNestedPath(String nestedPath)

Allow context to be changed so that standard validators can validate subtrees. Reject calls prepend the given path to the field names.

For example, an address validator could validate the subobject "address" of a customer object.

The default implementation throws UnsupportedOperationException since not all Errors implementations support nested paths.

Parameters
nestedPath:String

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.

See Also
getNestedPath()
toStringback to summary
public String toString()

Return a summary of the recorded errors, e.g. for inclusion in an exception message.

See Also
failOnError(Function)