org.springframework.web.bind.support

## Class ConfigurableWebBindingInitializer

- java.lang.Object
- - org.springframework.web.bind.support.ConfigurableWebBindingInitializer

- All Implemented Interfaces:
    WebBindingInitializer

      public class ConfigurableWebBindingInitializer
      extends Object
      implements WebBindingInitializer

  Convenient `WebBindingInitializer` for declarative configuration in a Spring application context. Allows for reusing pre-configured initializers with multiple controller/handlers.
  Since:
    2.5
  Author:
    Juergen Hoeller
  See Also:
    `setDirectFieldAccess(boolean)`, `setMessageCodesResolver(org.springframework.validation.MessageCodesResolver)`, `setBindingErrorProcessor(org.springframework.validation.BindingErrorProcessor)`, `setValidator(Validator)`, `setConversionService(ConversionService)`, `setPropertyEditorRegistrar(org.springframework.beans.PropertyEditorRegistrar)`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ConfigurableWebBindingInitializer()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `BindingErrorProcessor` | `getBindingErrorProcessor()` Return the strategy to use for processing binding errors.
    `ConversionService` | `getConversionService()` Return the ConversionService which will apply to every DataBinder.
    `MessageCodesResolver` | `getMessageCodesResolver()` Return the strategy to use for resolving errors into message codes.
    `PropertyEditorRegistrar[]` | `getPropertyEditorRegistrars()` Return the PropertyEditorRegistrars to be applied to every DataBinder.
    `Validator` | `getValidator()` Return the Validator to apply after each binding step, if any.
    `void` | `initBinder(WebDataBinder binder, WebRequest request)` Initialize the given DataBinder for the given request.
    `boolean` | `isAutoGrowNestedPaths()` Return whether a binder should attempt to "auto-grow" a nested path that contains a null value.
    `boolean` | `isDirectFieldAccess()` Return whether to use direct field access instead of bean property access.
    `void` | `setAutoGrowNestedPaths(boolean autoGrowNestedPaths)` Set whether a binder should attempt to "auto-grow" a nested path that contains a null value.
    `void` | `setBindingErrorProcessor(BindingErrorProcessor bindingErrorProcessor)` Set the strategy to use for processing binding errors, that is, required field errors and `PropertyAccessException`s.
    `void` | `setConversionService(ConversionService conversionService)` Specify a ConversionService which will apply to every DataBinder.
    `void` | `setDirectFieldAccess(boolean directFieldAccess)` Set whether to use direct field access instead of bean property access.
    `void` | `setMessageCodesResolver(MessageCodesResolver messageCodesResolver)` Set the strategy to use for resolving errors into message codes.
    `void` | `setPropertyEditorRegistrar(PropertyEditorRegistrar propertyEditorRegistrar)` Specify a single PropertyEditorRegistrar to be applied to every DataBinder.
    `void` | `setPropertyEditorRegistrars(PropertyEditorRegistrar[] propertyEditorRegistrars)` Specify multiple PropertyEditorRegistrars to be applied to every DataBinder.
    `void` | `setValidator(Validator validator)` Set the Validator to apply after each binding step.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ConfigurableWebBindingInitializer

          public ConfigurableWebBindingInitializer()

  - ### Method Detail

    - #### setAutoGrowNestedPaths

          public void setAutoGrowNestedPaths(boolean autoGrowNestedPaths)

      Set whether a binder should attempt to "auto-grow" a nested path that contains a null value.

      If "true", a null path location will be populated with a default object value and traversed instead of resulting in an exception. This flag also enables auto-growth of collection elements when accessing an out-of-bounds index.

      Default is "true" on a standard DataBinder. Note that this feature is only supported for bean property access (DataBinder's default mode), not for field access.

      See Also:
        `DataBinder.initBeanPropertyAccess()`, `DataBinder.setAutoGrowNestedPaths(boolean)`

    - #### isAutoGrowNestedPaths

          public boolean isAutoGrowNestedPaths()

      Return whether a binder should attempt to "auto-grow" a nested path that contains a null value.

    - #### setDirectFieldAccess

          public final void setDirectFieldAccess(boolean directFieldAccess)

      Set whether to use direct field access instead of bean property access.

      Default is `false`, using bean property access. Switch this to `true` in order to enforce direct field access.

      See Also:
        `DataBinder.initDirectFieldAccess()`, `DataBinder.initBeanPropertyAccess()`

    - #### isDirectFieldAccess

          public boolean isDirectFieldAccess()

      Return whether to use direct field access instead of bean property access.

    - #### setMessageCodesResolver

          public final void setMessageCodesResolver(MessageCodesResolver messageCodesResolver)

      Set the strategy to use for resolving errors into message codes. Applies the given strategy to all data binders used by this controller.

      Default is `null`, i.e. using the default strategy of the data binder.

      See Also:
        `DataBinder.setMessageCodesResolver(org.springframework.validation.MessageCodesResolver)`

    - #### getMessageCodesResolver

          public final MessageCodesResolver getMessageCodesResolver()

      Return the strategy to use for resolving errors into message codes.

    - #### setBindingErrorProcessor

          public final void setBindingErrorProcessor(BindingErrorProcessor bindingErrorProcessor)

      Set the strategy to use for processing binding errors, that is, required field errors and `PropertyAccessException`s.

      Default is `null`, that is, using the default strategy of the data binder.

      See Also:
        `DataBinder.setBindingErrorProcessor(org.springframework.validation.BindingErrorProcessor)`

    - #### getBindingErrorProcessor

          public final BindingErrorProcessor getBindingErrorProcessor()

      Return the strategy to use for processing binding errors.

    - #### setValidator

          public final void setValidator(Validator validator)

      Set the Validator to apply after each binding step.

    - #### getValidator

          public final Validator getValidator()

      Return the Validator to apply after each binding step, if any.

    - #### setConversionService

          public final void setConversionService(ConversionService conversionService)

      Specify a ConversionService which will apply to every DataBinder.
      Since:
        3.0

    - #### getConversionService

          public final ConversionService getConversionService()

      Return the ConversionService which will apply to every DataBinder.

    - #### setPropertyEditorRegistrar

          public final void setPropertyEditorRegistrar(PropertyEditorRegistrar propertyEditorRegistrar)

      Specify a single PropertyEditorRegistrar to be applied to every DataBinder.

    - #### setPropertyEditorRegistrars

          public final void setPropertyEditorRegistrars(PropertyEditorRegistrar[] propertyEditorRegistrars)

      Specify multiple PropertyEditorRegistrars to be applied to every DataBinder.

    - #### getPropertyEditorRegistrars

          public final PropertyEditorRegistrar[] getPropertyEditorRegistrars()

      Return the PropertyEditorRegistrars to be applied to every DataBinder.

    - #### initBinder

          public void initBinder(WebDataBinder binder,
                        WebRequest request)

      Description copied from interface: `WebBindingInitializer`
      Initialize the given DataBinder for the given request.
      Specified by:
        `initBinder` in interface `WebBindingInitializer`
      Parameters:
        `binder` - the DataBinder to initialize
        `request` - the web request that the data binding happens within