org.springframework.validation

## Interface BindingResult

- All Superinterfaces:
    Errors
  All Known Implementing Classes:
    AbstractBindingResult, AbstractPropertyBindingResult, BeanPropertyBindingResult, BindException, DirectFieldBindingResult, MapBindingResult, MethodArgumentNotValidException, WebExchangeBindException

      public interface BindingResult
      extends Errors

  General interface that represents binding results. Extends the `interface` for error registration capabilities, allowing for a `Validator` to be applied, and adds binding-specific analysis and model building.

  Serves as result holder for a `DataBinder`, obtained via the `DataBinder.getBindingResult()` method. BindingResult implementations can also be used directly, for example to invoke a `Validator` on it (e.g. as part of a unit test).

  Since:
    2.0
  Author:
    Juergen Hoeller
  See Also:
    `DataBinder`, `Errors`, `Validator`, `BeanPropertyBindingResult`, `DirectFieldBindingResult`, `MapBindingResult`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `MODEL_KEY_PREFIX` Prefix for the name of the BindingResult instance in a model, followed by the object name.

    - ### Fields inherited from interface org.springframework.validation.Errors

      `NESTED_PATH_SEPARATOR`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addError(ObjectError error)` Add a custom `ObjectError` or `FieldError` to the errors list.
    `PropertyEditor` | `findEditor(String field, Class<?> valueType)` Find a custom property editor for the given type and property.
    `Map<String,Object>` | `getModel()` Return a model Map for the obtained state, exposing a BindingResult instance as '`MODEL_KEY_PREFIX` + objectName' and the object itself as 'objectName'.
    `PropertyEditorRegistry` | `getPropertyEditorRegistry()` Return the underlying PropertyEditorRegistry.
    `Object` | `getRawFieldValue(String field)` Extract the raw field value for the given field.
    `default String[]` | `getSuppressedFields()` Return the list of fields that were suppressed during the bind process.
    `Object` | `getTarget()` Return the wrapped target object, which may be a bean, an object with public fields, a Map - depending on the concrete binding strategy.
    `default void` | `recordFieldValue(String field, Class<?> type, Object value)` Record the given value for the specified field.
    `default void` | `recordSuppressedField(String field)` Mark the specified disallowed field as suppressed.
    `String[]` | `resolveMessageCodes(String errorCode)` Resolve the given error code into message codes.
    `String[]` | `resolveMessageCodes(String errorCode, String field)` Resolve the given error code into message codes for the given field.

    - ### Methods inherited from interface org.springframework.validation.Errors

      `addAllErrors, getAllErrors, getErrorCount, getFieldError, getFieldError, getFieldErrorCount, getFieldErrorCount, getFieldErrors, getFieldErrors, getFieldType, getFieldValue, getGlobalError, getGlobalErrorCount, getGlobalErrors, getNestedPath, getObjectName, hasErrors, hasFieldErrors, hasFieldErrors, hasGlobalErrors, popNestedPath, pushNestedPath, reject, reject, reject, rejectValue, rejectValue, rejectValue, setNestedPath`

- - ### Field Detail

    - #### MODEL_KEY_PREFIX

          static final String MODEL_KEY_PREFIX

      Prefix for the name of the BindingResult instance in a model, followed by the object name.

  - ### Method Detail

    - #### getTarget

          @Nullable
          Object getTarget()

      Return the wrapped target object, which may be a bean, an object with public fields, a Map - depending on the concrete binding strategy.

    - #### getModel

          Map<String,Object> getModel()

      Return a model Map for the obtained state, exposing a BindingResult instance as '`MODEL_KEY_PREFIX` + objectName' and the object itself as 'objectName'.

      Note that the Map is constructed every time you're calling this method. Adding things to the map and then re-calling this method will not work.

      The attributes in the model Map returned by this method are usually included in the `ModelAndView` for a form view that uses Spring's `bind` tag in a JSP, which needs access to the BindingResult instance. Spring's pre-built form controllers will do this for you when rendering a form view. When building the ModelAndView instance yourself, you need to include the attributes from the model Map returned by this method.

      See Also:
        `Errors.getObjectName()`, `MODEL_KEY_PREFIX`, `ModelAndView`, `BindTag`

    - #### getRawFieldValue

          @Nullable
          Object getRawFieldValue(String field)

      Extract the raw field value for the given field. Typically used for comparison purposes.
      Parameters:
        `field` - the field to check
      Returns:
        the current value of the field in its raw form, or `null` if not known

    - #### findEditor

          @Nullable
          PropertyEditor findEditor(@Nullable
                                              String field,
                                              @Nullable
                                              Class<?> valueType)

      Find a custom property editor for the given type and property.
      Parameters:
        `field` - the path of the property (name or nested path), or `null` if looking for an editor for all properties of the given type
        `valueType` - the type of the property (can be `null` if a property is given but should be specified in any case for consistency checking)
      Returns:
        the registered editor, or `null` if none

    - #### getPropertyEditorRegistry

          @Nullable
          PropertyEditorRegistry getPropertyEditorRegistry()

      Return the underlying PropertyEditorRegistry.
      Returns:
        the PropertyEditorRegistry, or `null` if none available for this BindingResult

    - #### resolveMessageCodes

          String[] resolveMessageCodes(String errorCode)

      Resolve the given error code into message codes.

      Calls the configured `MessageCodesResolver` with appropriate parameters.

      Parameters:
        `errorCode` - the error code to resolve into message codes
      Returns:
        the resolved message codes

    - #### resolveMessageCodes

          String[] resolveMessageCodes(String errorCode,
                                       String field)

      Resolve the given error code into message codes for the given field.

      Calls the configured `MessageCodesResolver` with appropriate parameters.

      Parameters:
        `errorCode` - the error code to resolve into message codes
        `field` - the field to resolve message codes for
      Returns:
        the resolved message codes

    - #### addError

          void addError(ObjectError error)

      Add a custom `ObjectError` or `FieldError` to the errors list.

      Intended to be used by cooperating strategies such as `BindingErrorProcessor`.

      See Also:
        `ObjectError`, `FieldError`, `BindingErrorProcessor`

    - #### recordFieldValue

          default void recordFieldValue(String field,
                                        Class<?> type,
                                        @Nullable
                                        Object value)

      Record the given value for the specified field.

      To be used when a target object cannot be constructed, making the original field values available through `Errors.getFieldValue(java.lang.String)`. In case of a registered error, the rejected value will be exposed for each affected field.

      Parameters:
        `field` - the field to record the value for
        `type` - the type of the field
        `value` - the original value
      Since:
        5.0.4

    - #### recordSuppressedField

          default void recordSuppressedField(String field)

      Mark the specified disallowed field as suppressed.

      The data binder invokes this for each field value that was detected to target a disallowed field.

      See Also:
        `DataBinder.setAllowedFields(java.lang.String...)`

    - #### getSuppressedFields

          default String[] getSuppressedFields()

      Return the list of fields that were suppressed during the bind process.

      Can be used to determine whether any field values were targeting disallowed fields.

      See Also:
        `DataBinder.setAllowedFields(java.lang.String...)`