Class AbstractFlashMapManager
java.lang.Object
org.springframework.web.servlet.support.AbstractFlashMapManager
- All Implemented Interfaces:
FlashMapManager
- Direct Known Subclasses:
SessionFlashMapManager
A base class for
FlashMapManager
implementations.- Since:
- 3.1.1
- Author:
- Rossen Stoyanchev, Juergen Hoeller, Sam Brannen
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected Object
getFlashMapsMutex
(HttpServletRequest request) Obtain a mutex for modifying the FlashMap List as handled byretrieveFlashMaps(jakarta.servlet.http.HttpServletRequest)
andupdateFlashMaps(java.util.List<org.springframework.web.servlet.FlashMap>, jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)
,int
Return the amount of time in seconds before a FlashMap expires.Return the UrlPathHelper implementation to use.protected boolean
isFlashMapForRequest
(FlashMap flashMap, HttpServletRequest request) Whether the given FlashMap matches the current request.final 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.retrieveFlashMaps
(HttpServletRequest request) Retrieve saved FlashMap instances from the underlying storage.final 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 aFlashMap
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.
-
Field Details
-
logger
-
-
Constructor Details
-
AbstractFlashMapManager
public AbstractFlashMapManager()
-
-
Method Details
-
setFlashMapTimeout
public void setFlashMapTimeout(int flashMapTimeout) Set the amount of time in seconds after aFlashMap
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
Set the UrlPathHelper to use to match FlashMap instances to requests. -
getUrlPathHelper
Return the UrlPathHelper implementation to use. -
retrieveAndUpdate
@Nullable 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, jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)
, which is invoked only when there are flash attributes to be saved - i.e. before a redirect.- Specified by:
retrieveAndUpdate
in interfaceFlashMapManager
- Parameters:
request
- the current requestresponse
- the current response- Returns:
- a FlashMap matching the current request or
null
-
isFlashMapForRequest
Whether the given FlashMap matches the current request. Uses the expected 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 interfaceFlashMapManager
- Parameters:
flashMap
- the FlashMap to saverequest
- the current requestresponse
- the current response
-
retrieveFlashMaps
Retrieve saved FlashMap instances from the underlying storage.- Parameters:
request
- the current request- Returns:
- a List with FlashMap instances, or
null
if none found
-
updateFlashMaps
protected abstract void updateFlashMaps(List<FlashMap> flashMaps, HttpServletRequest request, HttpServletResponse response) Update the FlashMap instances in the underlying storage.- Parameters:
flashMaps
- a (potentially empty) list of FlashMap instances to saverequest
- the current requestresponse
- the current response
-
getFlashMapsMutex
Obtain a mutex for modifying the FlashMap List as handled byretrieveFlashMaps(jakarta.servlet.http.HttpServletRequest)
andupdateFlashMaps(java.util.List<org.springframework.web.servlet.FlashMap>, jakarta.servlet.http.HttpServletRequest, jakarta.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.- Parameters:
request
- the current request- Returns:
- the mutex to use (may be
null
if none applicable) - Since:
- 4.0.3
-