org.springframework.web.servlet.mvc.method.annotation

## Class ExtendedServletRequestDataBinder

- java.lang.Object
- - org.springframework.validation.DataBinder
  - - org.springframework.web.bind.WebDataBinder
    - - org.springframework.web.bind.ServletRequestDataBinder
      - - org.springframework.web.servlet.mvc.method.annotation.ExtendedServletRequestDataBinder

- All Implemented Interfaces:
    PropertyEditorRegistry, TypeConverter

      public class ExtendedServletRequestDataBinder
      extends ServletRequestDataBinder

  Subclass of `ServletRequestDataBinder` that adds URI template variables to the values used for data binding.

  WARNING: Data binding can lead to security issues by exposing parts of the object graph that are not meant to be accessed or modified by external clients. Therefore the design and use of data binding should be considered carefully with regard to security. For more details, please refer to the dedicated sections on data binding for Spring Web MVC and Spring WebFlux in the reference manual.

  Since:
    3.1
  Author:
    Rossen Stoyanchev
  See Also:
    `ServletRequestDataBinder`, `HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE`

- - ### Field Summary

    - ### Fields inherited from class org.springframework.web.bind.WebDataBinder

      `DEFAULT_FIELD_DEFAULT_PREFIX, DEFAULT_FIELD_MARKER_PREFIX`

    - ### Fields inherited from class org.springframework.validation.DataBinder

      `DEFAULT_AUTO_GROW_COLLECTION_LIMIT, DEFAULT_OBJECT_NAME, logger`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ExtendedServletRequestDataBinder(Object target)` Create a new instance, with default object name.
    `ExtendedServletRequestDataBinder(Object target, String objectName)` Create a new instance.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `addBindValues(MutablePropertyValues mpvs, ServletRequest request)` Merge URI variables into the property values to use for data binding.

    - ### Methods inherited from class org.springframework.web.bind.ServletRequestDataBinder

      `bind, closeNoCatch`

    - ### Methods inherited from class org.springframework.web.bind.WebDataBinder

      `adaptEmptyArrayIndices, bindMultipart, checkFieldDefaults, checkFieldMarkers, doBind, getEmptyValue, getEmptyValue, getFieldDefaultPrefix, getFieldMarkerPrefix, isBindEmptyMultipartFiles, setBindEmptyMultipartFiles, setFieldDefaultPrefix, setFieldMarkerPrefix`

    - ### Methods inherited from class org.springframework.validation.DataBinder

      `addCustomFormatter, addCustomFormatter, addCustomFormatter, addValidators, applyPropertyValues, bind, checkAllowedFields, checkRequiredFields, close, convertIfNecessary, convertIfNecessary, convertIfNecessary, convertIfNecessary, createBeanPropertyBindingResult, createDirectFieldBindingResult, findCustomEditor, getAllowedFields, getAutoGrowCollectionLimit, getBindingErrorProcessor, getBindingResult, getConversionService, getDisallowedFields, getInternalBindingResult, getObjectName, getPropertyAccessor, getPropertyEditorRegistry, getRequiredFields, getSimpleTypeConverter, getTarget, getTypeConverter, getValidator, getValidators, initBeanPropertyAccess, initDirectFieldAccess, isAllowed, isAutoGrowNestedPaths, isIgnoreInvalidFields, isIgnoreUnknownFields, registerCustomEditor, registerCustomEditor, replaceValidators, setAllowedFields, setAutoGrowCollectionLimit, setAutoGrowNestedPaths, setBindingErrorProcessor, setConversionService, setDisallowedFields, setIgnoreInvalidFields, setIgnoreUnknownFields, setMessageCodesResolver, setRequiredFields, setValidator, validate, validate`

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

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

- - ### Constructor Detail

    - #### ExtendedServletRequestDataBinder

          public ExtendedServletRequestDataBinder(@Nullable
                                                  Object target)

      Create a new instance, with default object name.
      Parameters:
        `target` - the target object to bind onto (or `null` if the binder is just used to convert a plain parameter value)
      See Also:
        `DataBinder.DEFAULT_OBJECT_NAME`

    - #### ExtendedServletRequestDataBinder

          public ExtendedServletRequestDataBinder(@Nullable
                                                  Object target,
                                                  String objectName)

      Create a new instance.
      Parameters:
        `target` - the target object to bind onto (or `null` if the binder is just used to convert a plain parameter value)
        `objectName` - the name of the target object
      See Also:
        `DataBinder.DEFAULT_OBJECT_NAME`

  - ### Method Detail

    - #### addBindValues

          protected void addBindValues(MutablePropertyValues mpvs,
                                       ServletRequest request)

      Merge URI variables into the property values to use for data binding.
      Overrides:
        `addBindValues` in class `ServletRequestDataBinder`
      Parameters:
        `mpvs` - the property values that will be used for data binding
        `request` - the current request