org.springframework.validation
Class DefaultBindingErrorProcessor

java.lang.Object
  extended by org.springframework.validation.DefaultBindingErrorProcessor
All Implemented Interfaces:
BindingErrorProcessor

public class DefaultBindingErrorProcessor
extends Object
implements BindingErrorProcessor

Default BindingErrorProcessor implementation.

Uses the "required" error code and the field name to resolve message codes for a missing field error.

Creates a FieldError for each PropertyAccessException given, using the PropertyAccessException's error code ("typeMismatch", "methodInvocation") for resolving message codes.

Since:
1.2
Author:
Alef Arendsen, Juergen Hoeller
See Also:
MISSING_FIELD_ERROR_CODE, DataBinder.setBindingErrorProcessor(org.springframework.validation.BindingErrorProcessor), AbstractBindingResult.addError(org.springframework.validation.ObjectError), AbstractBindingResult.resolveMessageCodes(java.lang.String), ErrorCoded.getErrorCode(), TypeMismatchException.ERROR_CODE, MethodInvocationException.ERROR_CODE

Field Summary
static String MISSING_FIELD_ERROR_CODE
          Error code that a missing field error (i.e.
 
Constructor Summary
DefaultBindingErrorProcessor()
           
 
Method Summary
protected  Object[] getArgumentsForBindError(String objectName, String field)
          Return FieldError arguments for a binding error on the given field.
 void processMissingFieldError(String missingField, BindingResult bindingResult)
          Apply the missing field error to the given BindException.
 void processPropertyAccessException(PropertyAccessException ex, BindingResult bindingResult)
          Translate the given PropertyAccessException to an appropriate error registered on the given Errors instance.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MISSING_FIELD_ERROR_CODE

public static final String MISSING_FIELD_ERROR_CODE
Error code that a missing field error (i.e. a required field not found in the list of property values) will be registered with: "required".

See Also:
Constant Field Values
Constructor Detail

DefaultBindingErrorProcessor

public DefaultBindingErrorProcessor()
Method Detail

processMissingFieldError

public void processMissingFieldError(String missingField,
                                     BindingResult bindingResult)
Description copied from interface: BindingErrorProcessor
Apply the missing field error to the given BindException.

Usually, a field error is created for a missing required field.

Specified by:
processMissingFieldError in interface BindingErrorProcessor
Parameters:
missingField - the field that was missing during binding
bindingResult - the errors object to add the error(s) to. You can add more than just one error or maybe even ignore it. The BindingResult object features convenience utils such as a resolveMessageCodes method to resolve an error code.
See Also:
AbstractBindingResult.addError(org.springframework.validation.ObjectError), AbstractBindingResult.resolveMessageCodes(java.lang.String)

processPropertyAccessException

public void processPropertyAccessException(PropertyAccessException ex,
                                           BindingResult bindingResult)
Description copied from interface: BindingErrorProcessor
Translate the given PropertyAccessException to an appropriate error registered on the given Errors instance.

Note that two error types are available: FieldError and ObjectError. Usually, field errors are created, but in certain situations one might want to create a global ObjectError instead.

Specified by:
processPropertyAccessException in interface BindingErrorProcessor
Parameters:
ex - the PropertyAccessException to translate
bindingResult - the errors object to add the error(s) to. You can add more than just one error or maybe even ignore it. The BindingResult object features convenience utils such as a resolveMessageCodes method to resolve an error code.
See Also:
Errors, FieldError, ObjectError, MessageCodesResolver, AbstractBindingResult.addError(org.springframework.validation.ObjectError), AbstractBindingResult.resolveMessageCodes(java.lang.String)

getArgumentsForBindError

protected Object[] getArgumentsForBindError(String objectName,
                                            String field)
Return FieldError arguments for a binding error on the given field. Invoked for each missing required field and each type mismatch.

The default implementation returns a single argument indicating the field name (of type DefaultMessageSourceResolvable, with "objectName.field" and "field" as codes).

Parameters:
objectName - the name of the target object
field - the field that caused the binding error
Returns:
the Object array that represents the FieldError arguments
See Also:
DefaultMessageSourceResolvable.getArguments(), DefaultMessageSourceResolvable