Package org.springframework.ui
Class ModelMap
- java.lang.Object
- java.util.AbstractMap<K,V>
- java.util.HashMap<K,V>
- java.util.LinkedHashMap<String,Object>
- org.springframework.ui.ModelMap
- All Implemented Interfaces:
Serializable
,Cloneable
,Map<String,Object>
- Direct Known Subclasses:
ExtendedModelMap
,RedirectAttributesModelMap
public class ModelMap extends LinkedHashMap<String,Object>
Implementation ofMap
for use when building model data for use with UI tools. Supports chained calls and generation of model attribute names.This class serves as generic model holder for Servlet MVC but is not tied to it. Check out the
Model
interface for an interface variant.- Since:
- 2.0
- Author:
- Rob Harrop, Juergen Hoeller
- See Also:
Conventions.getVariableName(java.lang.Object)
,ModelAndView
, 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 ModelMap()
Construct a new, emptyModelMap
.ModelMap(Object attributeValue)
Construct a newModelMap
containing the supplied attribute.ModelMap(String attributeName, Object attributeValue)
Construct a newModelMap
containing the supplied attribute under the supplied name.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ModelMap
addAllAttributes(Collection<?> attributeValues)
Copy all attributes in the suppliedCollection
into thisMap
, using attribute name generation for each element.ModelMap
addAllAttributes(Map<String,?> attributes)
Copy all attributes in the suppliedMap
into thisMap
.ModelMap
addAttribute(Object attributeValue)
Add the supplied attribute to thisMap
using agenerated name
.ModelMap
addAttribute(String attributeName, Object attributeValue)
Add the supplied attribute under the supplied name.boolean
containsAttribute(String attributeName)
Does this model contain an attribute of the given name?Object
getAttribute(String attributeName)
Return the attribute value for the given name, if any.ModelMap
mergeAttributes(Map<String,?> attributes)
Copy all attributes in the suppliedMap
into thisMap
, with existing objects of the same name taking precedence (i.e.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, put, putAll, 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, put, putAll, putIfAbsent, remove, remove, replace, replace, size
Constructor Detail
ModelMap
public ModelMap()
Construct a new, emptyModelMap
.
ModelMap
public ModelMap(String attributeName, @Nullable Object attributeValue)
Construct a newModelMap
containing the supplied attribute under the supplied name.- See Also:
addAttribute(String, Object)
ModelMap
public ModelMap(Object attributeValue)
Construct a newModelMap
containing the supplied attribute. Uses attribute name generation to generate the key for the supplied model object.- See Also:
addAttribute(Object)
Method Detail
addAttribute
public ModelMap addAttribute(String attributeName, @Nullable Object attributeValue)
Add the supplied attribute under the supplied name.- Parameters:
attributeName
- the name of the model attribute (nevernull
)attributeValue
- the model attribute value (can benull
)
addAttribute
public ModelMap 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.- Parameters:
attributeValue
- the model attribute value (nevernull
)
addAllAttributes
public ModelMap addAllAttributes(@Nullable Collection<?> attributeValues)
Copy all attributes in the suppliedCollection
into thisMap
, using attribute name generation for each element.- See Also:
addAttribute(Object)
addAllAttributes
public ModelMap addAllAttributes(@Nullable Map<String,?> attributes)
Copy all attributes in the suppliedMap
into thisMap
.- See Also:
addAttribute(String, Object)
mergeAttributes
public ModelMap 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).
containsAttribute
public boolean containsAttribute(String attributeName)
Does this model contain an attribute of the given name?- Parameters:
attributeName
- the name of the model attribute (nevernull
)- Returns:
- whether this model contains a corresponding attribute
getAttribute
@Nullable public Object getAttribute(String attributeName)
Return the attribute value for the given name, if any.- Parameters:
attributeName
- the name of the model attribute (nevernull
)- Returns:
- the corresponding attribute value, or
null
if none - Since:
- 5.2