public abstract class AbstractFlashMapManager extends Object implements FlashMapManager
FlashMapManager
implementations.Constructor and Description |
---|
AbstractFlashMapManager() |
Modifier and Type | Method and Description |
---|---|
protected Object |
getFlashMapsMutex(HttpServletRequest request)
Obtain a mutex for modifying the FlashMap List as handled by
retrieveFlashMaps(javax.servlet.http.HttpServletRequest) and updateFlashMaps(java.util.List<org.springframework.web.servlet.FlashMap>, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) , |
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 the 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 the underlying storage.
|
protected final Log logger
public void setFlashMapTimeout(int flashMapTimeout)
FlashMap
is saved
(at request completion) and before it expires.
The default value is 180 seconds.
public int getFlashMapTimeout()
public void setUrlPathHelper(UrlPathHelper urlPathHelper)
public UrlPathHelper getUrlPathHelper()
@Nullable public final FlashMap retrieveAndUpdate(HttpServletRequest request, HttpServletResponse response)
FlashMapManager
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.
retrieveAndUpdate
in interface FlashMapManager
request
- the current requestresponse
- the current responsenull
protected boolean isFlashMapForRequest(FlashMap flashMap, HttpServletRequest request)
public final void saveOutputFlashMap(FlashMap flashMap, HttpServletRequest request, HttpServletResponse response)
FlashMapManager
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.
saveOutputFlashMap
in interface FlashMapManager
flashMap
- the FlashMap to saverequest
- the current requestresponse
- the current response@Nullable protected abstract List<FlashMap> retrieveFlashMaps(HttpServletRequest request)
request
- the current requestnull
if none foundprotected abstract void updateFlashMaps(List<FlashMap> flashMaps, HttpServletRequest request, HttpServletResponse response)
flashMaps
- a (potentially empty) list of FlashMap instances to saverequest
- the current requestresponse
- the current response@Nullable protected Object getFlashMapsMutex(HttpServletRequest request)
retrieveFlashMaps(javax.servlet.http.HttpServletRequest)
and updateFlashMaps(java.util.List<org.springframework.web.servlet.FlashMap>, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
,
The default implementation returns a shared static mutex.
Subclasses are encouraged to return a more specific mutex, or
null
to indicate that no synchronization is necessary.
request
- the current requestnull
if none applicable)