org.springframework.web.servlet.support

## Interface RequestDataValueProcessor

-     public interface RequestDataValueProcessor

  A contract for inspecting and potentially modifying request data values such as URL query parameters or form field values before they are rendered by a view or before a redirect.

  Implementations may use this contract for example as part of a solution to provide data integrity, confidentiality, protection against cross-site request forgery (CSRF), and others or for other tasks such as automatically adding a hidden field to all forms and URLs.

  View technologies that support this contract can obtain an instance to delegate to via `RequestContext.getRequestDataValueProcessor()`.

  Since:
    3.1
  Author:
    Rossen Stoyanchev

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Map<String,String>` | `getExtraHiddenFields(HttpServletRequest request)` Invoked after all form fields have been rendered.
    `String` | `processAction(HttpServletRequest request, String action)` Invoked when a new form action is rendered.
    `String` | `processFormFieldValue(HttpServletRequest request, String name, String value, String type)` Invoked when a form field value is rendered.
    `String` | `processUrl(HttpServletRequest request, String url)` Invoked when a URL is about to be rendered or redirected to.

- - ### Method Detail

    - #### processAction

          String processAction(HttpServletRequest request,
                             String action)

      Invoked when a new form action is rendered.
      Parameters:
        `request` - the current request
        `action` - the form action
      Returns:
        the action to use, possibly modified

    - #### processFormFieldValue

          String processFormFieldValue(HttpServletRequest request,
                                     String name,
                                     String value,
                                     String type)

      Invoked when a form field value is rendered.
      Parameters:
        `request` - the current request
        `name` - the form field name
        `value` - the form field value
        `type` - the form field type ("text", "hidden", etc.)
      Returns:
        the form field value to use, possibly modified

    - #### getExtraHiddenFields

          Map<String,String> getExtraHiddenFields(HttpServletRequest request)

      Invoked after all form fields have been rendered.
      Parameters:
        `request` - the current request
      Returns:
        additional hidden form fields to be added, or `null`

    - #### processUrl

          String processUrl(HttpServletRequest request,
                          String url)

      Invoked when a URL is about to be rendered or redirected to.
      Parameters:
        `request` - the current request
        `url` - the URL value
      Returns:
        the URL to use, possibly modified