org.springframework.web.bind.support

## Class DefaultSessionAttributeStore

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

- All Implemented Interfaces:
    SessionAttributeStore

      public class DefaultSessionAttributeStore
      extends Object
      implements SessionAttributeStore

  Default implementation of the `SessionAttributeStore` interface, storing the attributes in the WebRequest session (i.e. HttpSession or PortletSession).
  Since:
    2.5
  Author:
    Juergen Hoeller
  See Also:
    `setAttributeNamePrefix(java.lang.String)`, `RequestAttributes.setAttribute(java.lang.String, java.lang.Object, int)`, `RequestAttributes.getAttribute(java.lang.String, int)`, `RequestAttributes.removeAttribute(java.lang.String, int)`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultSessionAttributeStore()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `cleanupAttribute(WebRequest request, String attributeName)` Clean up the specified attribute in the backend session.
    `protected String` | `getAttributeNameInSession(WebRequest request, String attributeName)` Calculate the attribute name in the backend session.
    `Object` | `retrieveAttribute(WebRequest request, String attributeName)` Retrieve the specified attribute from the backend session.
    `void` | `setAttributeNamePrefix(String attributeNamePrefix)` Specify a prefix to use for the attribute names in the backend session.
    `void` | `storeAttribute(WebRequest request, String attributeName, Object attributeValue)` Store the supplied attribute in the backend session.

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

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

- - ### Constructor Detail

    - #### DefaultSessionAttributeStore

          public DefaultSessionAttributeStore()

  - ### Method Detail

    - #### setAttributeNamePrefix

          public void setAttributeNamePrefix(String attributeNamePrefix)

      Specify a prefix to use for the attribute names in the backend session.

      Default is to use no prefix, storing the session attributes with the same name as in the model.

    - #### storeAttribute

          public void storeAttribute(WebRequest request,
                            String attributeName,
                            Object attributeValue)

      Description copied from interface: `SessionAttributeStore`
      Store the supplied attribute in the backend session.

      Can be called for new attributes as well as for existing attributes. In the latter case, this signals that the attribute value may have been modified.

      Specified by:
        `storeAttribute` in interface `SessionAttributeStore`
      Parameters:
        `request` - the current request
        `attributeName` - the name of the attribute
        `attributeValue` - the attribute value to store

    - #### retrieveAttribute

          public Object retrieveAttribute(WebRequest request,
                                 String attributeName)

      Description copied from interface: `SessionAttributeStore`
      Retrieve the specified attribute from the backend session.

      This will typically be called with the expectation that the attribute is already present, with an exception to be thrown if this method returns `null`.

      Specified by:
        `retrieveAttribute` in interface `SessionAttributeStore`
      Parameters:
        `request` - the current request
        `attributeName` - the name of the attribute
      Returns:
        the current attribute value, or `null` if none

    - #### cleanupAttribute

          public void cleanupAttribute(WebRequest request,
                              String attributeName)

      Description copied from interface: `SessionAttributeStore`
      Clean up the specified attribute in the backend session.

      Indicates that the attribute name will not be used anymore.

      Specified by:
        `cleanupAttribute` in interface `SessionAttributeStore`
      Parameters:
        `request` - the current request
        `attributeName` - the name of the attribute

    - #### getAttributeNameInSession

          protected String getAttributeNameInSession(WebRequest request,
                                         String attributeName)

      Calculate the attribute name in the backend session.

      The default implementation simply prepends the configured `"attributeNamePrefix"`, if any.

      Parameters:
        `request` - the current request
        `attributeName` - the name of the attribute
      Returns:
        the attribute name in the backend session