Package org.springframework.web.servlet
Class FlashMap
- All Implemented Interfaces:
Serializable
,Cloneable
,Comparable<FlashMap>
,Map<String,
Object>
A FlashMap provides a way for one request to store attributes intended for
use in another. This is most commonly needed when redirecting from one URL
to another -- e.g. the Post/Redirect/Get pattern. A FlashMap is saved before
the redirect (typically in the session) and is made available after the
redirect and removed immediately.
A FlashMap can be set up with a request path and request parameters to
help identify the target request. Without this information, a FlashMap is
made available to the next request, which may or may not be the intended
recipient. On a redirect, the target URL is known and a FlashMap can be
updated with that information. This is done automatically when the
org.springframework.web.servlet.view.RedirectView
is used.
Note: annotated controllers will usually not use FlashMap directly.
See org.springframework.web.servlet.mvc.support.RedirectAttributes
for an overview of using flash attributes in annotated controllers.
- Since:
- 3.1
- Author:
- Rossen Stoyanchev
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K extends Object,
V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object, V extends Object> -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionaddTargetRequestParam
(String name, String value) Provide a request parameter identifying the request for this FlashMap.addTargetRequestParams
(MultiValueMap<String, String> params) Provide request parameters identifying the request for this FlashMap.int
Compare two FlashMaps and prefer the one that specifies a target URL path or has more target URL parameters.boolean
long
Return the expiration time for the FlashMap or -1 if the expiration period has not started.Return the parameters identifying the target request, or an empty map.Return the target URL path (ornull
if none specified).int
hashCode()
boolean
Return whether this instance has expired depending on the amount of elapsed time since the call tostartExpirationPeriod(int)
.void
setExpirationTime
(long expirationTime) Set the expiration time for the FlashMap.void
setTargetRequestPath
(String path) Provide a URL path to help identify the target request for this FlashMap.void
startExpirationPeriod
(int timeToLive) Start the expiration period for this instance.toString()
Methods inherited from class java.util.HashMap
clear, clone, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, forEach, get, getOrDefault, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values
-
Constructor Details
-
FlashMap
public FlashMap()
-
-
Method Details
-
setTargetRequestPath
Provide a URL path to help identify the target request for this FlashMap.The path may be absolute (e.g. "/application/resource") or relative to the current request (e.g. "../resource").
-
getTargetRequestPath
Return the target URL path (ornull
if none specified). -
addTargetRequestParams
Provide request parameters identifying the request for this FlashMap.- Parameters:
params
- a Map with the names and values of expected parameters
-
addTargetRequestParam
Provide a request parameter identifying the request for this FlashMap.- Parameters:
name
- the expected parameter name (skipped if empty)value
- the expected value (skipped if empty)
-
getTargetRequestParams
Return the parameters identifying the target request, or an empty map. -
startExpirationPeriod
public void startExpirationPeriod(int timeToLive) Start the expiration period for this instance.- Parameters:
timeToLive
- the number of seconds before expiration
-
setExpirationTime
public void setExpirationTime(long expirationTime) Set the expiration time for the FlashMap. This is provided for serialization purposes but can also be used insteadstartExpirationPeriod(int)
.- Since:
- 4.2
-
getExpirationTime
public long getExpirationTime()Return the expiration time for the FlashMap or -1 if the expiration period has not started.- Since:
- 4.2
-
isExpired
public boolean isExpired()Return whether this instance has expired depending on the amount of elapsed time since the call tostartExpirationPeriod(int)
. -
compareTo
Compare two FlashMaps and prefer the one that specifies a target URL path or has more target URL parameters. Before comparing FlashMap instances ensure that they match a given request.- Specified by:
compareTo
in interfaceComparable<FlashMap>
-
equals
-
hashCode
public int hashCode() -
toString
- Overrides:
toString
in classAbstractMap<String,
Object>
-