public abstract class AbstractPropertyBindingResult extends AbstractBindingResult
BindingResult
implementations that work with
Spring's PropertyAccessor
mechanism.
Pre-implements field access through delegation to the corresponding
PropertyAccessor methods.getPropertyAccessor()
,
PropertyAccessor
,
ConfigurablePropertyAccessor
,
Serialized FormMODEL_KEY_PREFIX
NESTED_PATH_SEPARATOR
Modifier | Constructor and Description |
---|---|
protected |
AbstractPropertyBindingResult(String objectName)
Create a new AbstractPropertyBindingResult instance.
|
Modifier and Type | Method and Description |
---|---|
protected String |
canonicalFieldName(String field)
Returns the canonical property name.
|
PropertyEditor |
findEditor(String field,
Class<?> valueType)
This implementation exposes a PropertyEditor adapter for a Formatter,
if applicable.
|
protected Object |
formatFieldValue(String field,
Object value)
Formats the field value based on registered PropertyEditors.
|
protected Object |
getActualFieldValue(String field)
Fetches the field value from the PropertyAccessor.
|
protected PropertyEditor |
getCustomEditor(String fixedField)
Retrieve the custom PropertyEditor for the given field, if any.
|
Class<?> |
getFieldType(String field)
Determines the field type from the property type.
|
abstract ConfigurablePropertyAccessor |
getPropertyAccessor()
Provide the PropertyAccessor to work with, according to the
concrete strategy of access.
|
PropertyEditorRegistry |
getPropertyEditorRegistry()
Returns the underlying PropertyAccessor.
|
void |
initConversion(ConversionService conversionService) |
addAllErrors, addError, equals, getAllErrors, getErrorCount, getFieldError, getFieldError, getFieldErrors, getFieldErrors, getFieldValue, getGlobalError, getGlobalErrors, getMessageCodesResolver, getModel, getObjectName, getRawFieldValue, getSuppressedFields, getTarget, hasErrors, hashCode, recordFieldValue, recordSuppressedField, reject, rejectValue, resolveMessageCodes, resolveMessageCodes, setMessageCodesResolver
doSetNestedPath, fixedField, getFieldErrorCount, getFieldErrorCount, getGlobalErrorCount, getNestedPath, hasFieldErrors, hasFieldErrors, hasGlobalErrors, isMatchingFieldError, popNestedPath, pushNestedPath, reject, reject, rejectValue, rejectValue, setNestedPath, toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getFieldErrorCount, getFieldErrorCount, getGlobalErrorCount, getNestedPath, hasFieldErrors, hasFieldErrors, hasGlobalErrors, popNestedPath, pushNestedPath, reject, reject, rejectValue, rejectValue, setNestedPath
protected AbstractPropertyBindingResult(String objectName)
objectName
- the name of the target objectDefaultMessageCodesResolver
public void initConversion(ConversionService conversionService)
public PropertyEditorRegistry getPropertyEditorRegistry()
getPropertyEditorRegistry
in interface BindingResult
getPropertyEditorRegistry
in class AbstractBindingResult
null
if none
available for this BindingResultgetPropertyAccessor()
protected String canonicalFieldName(String field)
canonicalFieldName
in class AbstractErrors
field
- the original field namePropertyAccessorUtils.canonicalPropertyName(java.lang.String)
@Nullable public Class<?> getFieldType(@Nullable String field)
getFieldType
in interface Errors
getFieldType
in class AbstractBindingResult
field
- the field namenull
if not determinablegetPropertyAccessor()
@Nullable protected Object getActualFieldValue(String field)
getActualFieldValue
in class AbstractBindingResult
field
- the field to checkgetPropertyAccessor()
protected Object formatFieldValue(String field, @Nullable Object value)
formatFieldValue
in class AbstractBindingResult
field
- the field to checkvalue
- the value of the field (either a rejected value
other than from a binding error, or an actual field value)getCustomEditor(java.lang.String)
@Nullable protected PropertyEditor getCustomEditor(String fixedField)
fixedField
- the fully qualified field namenull
@Nullable public PropertyEditor findEditor(@Nullable String field, @Nullable Class<?> valueType)
findEditor
in interface BindingResult
findEditor
in class AbstractBindingResult
field
- the path of the property (name or nested path), or
null
if looking for an editor for all properties of the given typevalueType
- the type of the property (can be null
if a property
is given but should be specified in any case for consistency checking)null
if nonepublic abstract ConfigurablePropertyAccessor getPropertyAccessor()
Note that a PropertyAccessor used by a BindingResult should always have its "extractOldValueForEditor" flag set to "true" by default, since this is typically possible without side effects for model objects that serve as data binding target.