org.springframework.web.bind.support
Class DefaultSessionAttributeStore

java.lang.Object
  extended by 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
DefaultSessionAttributeStore()
           
 
Method Summary
 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