org.springframework.web.servlet.support
Class AbstractFlashMapManager

java.lang.Object
  extended by org.springframework.web.servlet.support.AbstractFlashMapManager
All Implemented Interfaces:
FlashMapManager
Direct Known Subclasses:
SessionFlashMapManager

public abstract class AbstractFlashMapManager
extends Object
implements FlashMapManager

A base class for FlashMapManager implementations.

Since:
3.1.1
Author:
Rossen Stoyanchev

Field Summary
protected  Log logger
           
 
Constructor Summary
AbstractFlashMapManager()
           
 
Method Summary
 int getFlashMapTimeout()
          Return the amount of time in seconds before a FlashMap expires.
 UrlPathHelper getUrlPathHelper()
          Return the UrlPathHelper implementation to use.
protected  boolean isFlashMapForRequest(FlashMap flashMap, HttpServletRequest request)
          Whether the given FlashMap matches the current request.
 FlashMap retrieveAndUpdate(HttpServletRequest request, HttpServletResponse response)
          Find a FlashMap saved by a previous request that matches to the current request, remove it from underlying storage, and also remove other expired FlashMap instances.
protected abstract  List<FlashMap> retrieveFlashMaps(HttpServletRequest request)
          Retrieve saved FlashMap instances from underlying storage.
 void saveOutputFlashMap(FlashMap flashMap, HttpServletRequest request, HttpServletResponse response)
          Save the given FlashMap, in some underlying storage and set the start of its expiration period.
 void setFlashMapTimeout(int flashMapTimeout)
          Set the amount of time in seconds after a FlashMap is saved (at request completion) and before it expires.
 void setUrlPathHelper(UrlPathHelper urlPathHelper)
          Set the UrlPathHelper to use to match FlashMap instances to requests.
protected abstract  void updateFlashMaps(List<FlashMap> flashMaps, HttpServletRequest request, HttpServletResponse response)
          Update the FlashMap instances in some underlying storage.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected final Log logger
Constructor Detail

AbstractFlashMapManager

public AbstractFlashMapManager()
Method Detail

setFlashMapTimeout

public void setFlashMapTimeout(int flashMapTimeout)
Set the amount of time in seconds after a FlashMap is saved (at request completion) and before it expires.

The default value is 180 seconds.


getFlashMapTimeout

public int getFlashMapTimeout()
Return the amount of time in seconds before a FlashMap expires.


setUrlPathHelper

public void setUrlPathHelper(UrlPathHelper urlPathHelper)
Set the UrlPathHelper to use to match FlashMap instances to requests.


getUrlPathHelper

public UrlPathHelper getUrlPathHelper()
Return the UrlPathHelper implementation to use.


retrieveAndUpdate

public final FlashMap retrieveAndUpdate(HttpServletRequest request,
                                        HttpServletResponse response)
Description copied from interface: FlashMapManager
Find a FlashMap saved by a previous request that matches to the current request, remove it from underlying storage, and also remove other expired FlashMap instances.

This method is invoked in the beginning of every request in contrast to FlashMapManager.saveOutputFlashMap(org.springframework.web.servlet.FlashMap, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse), which is invoked only when there are flash attributes to be saved - i.e. before a redirect.

Specified by:
retrieveAndUpdate in interface FlashMapManager
Parameters:
request - the current request
response - the current response
Returns:
a FlashMap matching the current request or null

retrieveFlashMaps

protected abstract List<FlashMap> retrieveFlashMaps(HttpServletRequest request)
Retrieve saved FlashMap instances from underlying storage.

Parameters:
request - the current request
Returns:
a List with FlashMap instances or null

isFlashMapForRequest

protected boolean isFlashMapForRequest(FlashMap flashMap,
                                       HttpServletRequest request)
Whether the given FlashMap matches the current request. The default implementation uses the target request path and query parameters saved in the FlashMap.


saveOutputFlashMap

public final void saveOutputFlashMap(FlashMap flashMap,
                                     HttpServletRequest request,
                                     HttpServletResponse response)
Description copied from interface: FlashMapManager
Save the given FlashMap, in some underlying storage and set the start of its expiration period.

Note: Invoke this method prior to a redirect in order to allow saving the FlashMap in the HTTP session or in a response cookie before the response is committed.

Specified by:
saveOutputFlashMap in interface FlashMapManager
Parameters:
flashMap - the FlashMap to save
request - the current request
response - the current response

updateFlashMaps

protected abstract void updateFlashMaps(List<FlashMap> flashMaps,
                                        HttpServletRequest request,
                                        HttpServletResponse response)
Update the FlashMap instances in some underlying storage.

Parameters:
flashMaps - a non-empty list of FlashMap instances to save
request - the current request
response - the current response