Class RedirectAttributesModelMap
- java.lang.Object
- java.util.AbstractMap<K,V>
- java.util.HashMap<K,V>
- java.util.LinkedHashMap<String,Object>
- org.springframework.ui.ModelMap
- org.springframework.web.servlet.mvc.support.RedirectAttributesModelMap
- All Implemented Interfaces:
Serializable
,Cloneable
,Map<String,Object>
,Model
,RedirectAttributes
public class RedirectAttributesModelMap extends ModelMap implements RedirectAttributes
AModelMap
implementation ofRedirectAttributes
that formats values as Strings using aDataBinder
. Also provides a place to store flash attributes so they can survive a redirect without the need to be embedded in the redirect URL.- Since:
- 3.1
- Author:
- Rossen Stoyanchev
- See Also:
- Serialized Form
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
Constructors Constructor Description RedirectAttributesModelMap()
Default constructor without a DataBinder.RedirectAttributesModelMap(DataBinder dataBinder)
Constructor with a DataBinder.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RedirectAttributesModelMap
addAllAttributes(Collection<?> attributeValues)
Copy all attributes in the suppliedCollection
into thisMap
, using attribute name generation for each element.RedirectAttributesModelMap
addAllAttributes(Map<String,?> attributes)
Copy all attributes in the suppliedMap
into thisMap
.RedirectAttributesModelMap
addAttribute(Object attributeValue)
Add the supplied attribute to thisMap
using agenerated name
.RedirectAttributesModelMap
addAttribute(String attributeName, Object attributeValue)
Add the supplied attribute under the supplied name.RedirectAttributes
addFlashAttribute(Object attributeValue)
Add the given flash storage using agenerated name
.RedirectAttributes
addFlashAttribute(String attributeName, Object attributeValue)
Add the given flash attribute.Map<String,Object>
asMap()
Return the current set of model attributes as a Map.Map<String,?>
getFlashAttributes()
Return the attributes candidate for flash storage or an empty Map.RedirectAttributesModelMap
mergeAttributes(Map<String,?> attributes)
Copy all attributes in the suppliedMap
into thisMap
, with existing objects of the same name taking precedence (i.e.Object
put(String key, Object value)
void
putAll(Map<? extends String,? extends Object> map)
Methods inherited from class org.springframework.ui.ModelMap
containsAttribute, getAttribute
Methods inherited from class java.util.LinkedHashMap
clear, containsValue, entrySet, forEach, get, getOrDefault, keySet, removeEldestEntry, replaceAll, values
Methods inherited from class java.util.HashMap
clone, compute, computeIfAbsent, computeIfPresent, containsKey, isEmpty, merge, putIfAbsent, remove, remove, replace, replace, size
Methods inherited from class java.util.AbstractMap
equals, hashCode, toString
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, containsKey, equals, hashCode, isEmpty, merge, putIfAbsent, remove, remove, replace, replace, size
Methods inherited from interface org.springframework.ui.Model
containsAttribute, getAttribute
Constructor Detail
RedirectAttributesModelMap
public RedirectAttributesModelMap()
Default constructor without a DataBinder. Attribute values are converted to String viaAbstractMap.toString()
.
RedirectAttributesModelMap
public RedirectAttributesModelMap(@Nullable DataBinder dataBinder)
Constructor with a DataBinder.- Parameters:
dataBinder
- used to format attribute values as Strings
Method Detail
getFlashAttributes
public Map<String,?> getFlashAttributes()
Return the attributes candidate for flash storage or an empty Map.- Specified by:
getFlashAttributes
in interfaceRedirectAttributes
addAttribute
public RedirectAttributesModelMap addAttribute(String attributeName, @Nullable Object attributeValue)
Add the supplied attribute under the supplied name.Formats the attribute value as a String before adding it.
- Specified by:
addAttribute
in interfaceModel
- Specified by:
addAttribute
in interfaceRedirectAttributes
- Overrides:
addAttribute
in classModelMap
- Parameters:
attributeName
- the name of the model attribute (nevernull
)attributeValue
- the model attribute value (can benull
)
addAttribute
public RedirectAttributesModelMap addAttribute(Object attributeValue)
Add the supplied attribute to thisMap
using agenerated name
.Note: Empty
Collections
are not added to the model when using this method because we cannot correctly determine the true convention name. View code should check fornull
rather than for empty collections as is already done by JSTL tags.Formats the attribute value as a String before adding it.
- Specified by:
addAttribute
in interfaceModel
- Specified by:
addAttribute
in interfaceRedirectAttributes
- Overrides:
addAttribute
in classModelMap
- Parameters:
attributeValue
- the model attribute value (nevernull
)
addAllAttributes
public RedirectAttributesModelMap addAllAttributes(@Nullable Collection<?> attributeValues)
Copy all attributes in the suppliedCollection
into thisMap
, using attribute name generation for each element.Each attribute value is formatted as a String before being added.
- Specified by:
addAllAttributes
in interfaceModel
- Specified by:
addAllAttributes
in interfaceRedirectAttributes
- Overrides:
addAllAttributes
in classModelMap
- See Also:
ModelMap.addAttribute(Object)
addAllAttributes
public RedirectAttributesModelMap addAllAttributes(@Nullable Map<String,?> attributes)
Copy all attributes in the suppliedMap
into thisMap
.Each attribute value is formatted as a String before being added.
- Specified by:
addAllAttributes
in interfaceModel
- Overrides:
addAllAttributes
in classModelMap
- See Also:
ModelMap.addAttribute(String, Object)
mergeAttributes
public RedirectAttributesModelMap mergeAttributes(@Nullable Map<String,?> attributes)
Copy all attributes in the suppliedMap
into thisMap
, with existing objects of the same name taking precedence (i.e. not getting replaced).Each attribute value is formatted as a String before being merged.
- Specified by:
mergeAttributes
in interfaceModel
- Specified by:
mergeAttributes
in interfaceRedirectAttributes
- Overrides:
mergeAttributes
in classModelMap
asMap
public Map<String,Object> asMap()
Description copied from interface:Model
Return the current set of model attributes as a Map.
put
public Object put(String key, @Nullable Object value)
The value is formatted as a String before being added.
putAll
public void putAll(@Nullable Map<? extends String,? extends Object> map)
Each value is formatted as a String before being added.
addFlashAttribute
public RedirectAttributes addFlashAttribute(String attributeName, @Nullable Object attributeValue)
Description copied from interface:RedirectAttributes
Add the given flash attribute.- Specified by:
addFlashAttribute
in interfaceRedirectAttributes
- Parameters:
attributeName
- the attribute name; nevernull
attributeValue
- the attribute value; may benull
addFlashAttribute
public RedirectAttributes addFlashAttribute(Object attributeValue)
Description copied from interface:RedirectAttributes
Add the given flash storage using agenerated name
.- Specified by:
addFlashAttribute
in interfaceRedirectAttributes
- Parameters:
attributeValue
- the flash attribute value; nevernull