public abstract class AbstractFlashMapManager extends java.lang.Object implements FlashMapManager
FlashMapManager
implementations.Constructor and Description |
---|
AbstractFlashMapManager() |
Modifier and Type | Method and Description |
---|---|
protected java.lang.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.
|
org.springframework.web.util.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 java.util.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(org.springframework.web.util.UrlPathHelper urlPathHelper)
Set the UrlPathHelper to use to match FlashMap instances to requests.
|
protected abstract void |
updateFlashMaps(java.util.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(org.springframework.web.util.UrlPathHelper urlPathHelper)
public org.springframework.web.util.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 java.util.List<FlashMap> retrieveFlashMaps(HttpServletRequest request)
request
- the current requestnull
if none foundprotected abstract void updateFlashMaps(java.util.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 java.lang.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)