org.springframework.ui
Class ModelMap

java.lang.Object
  extended by java.util.AbstractMap<K,V>
      extended by java.util.HashMap<K,V>
          extended by java.util.LinkedHashMap<String,Object>
              extended by org.springframework.ui.ModelMap
All Implemented Interfaces:
Serializable, Cloneable, Map<String,Object>
Direct Known Subclasses:
ExtendedModelMap

public class ModelMap
extends LinkedHashMap<String,Object>

Implementation of Map 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 both Servlet and Portlet MVC, but is not tied to either of those. Check out the Model interface for a Java-5-based interface variant that serves the same purpose.

Since:
2.0
Author:
Rob Harrop, Juergen Hoeller
See Also:
Conventions.getVariableName(java.lang.Object), ModelAndView, ModelAndView, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>
 
Constructor Summary
ModelMap()
          Construct a new, empty ModelMap.
ModelMap(Object attributeValue)
          Construct a new ModelMap containing the supplied attribute.
ModelMap(String attributeName, Object attributeValue)
          Construct a new ModelMap containing the supplied attribute under the supplied name.
 
Method Summary
 ModelMap addAllAttributes(Collection<?> attributeValues)
          Copy all attributes in the supplied Collection into this Map, using attribute name generation for each element.
 ModelMap addAllAttributes(Map<String,?> attributes)
          Copy all attributes in the supplied Map into this Map.
 ModelMap addAllObjects(Collection objects)
          Deprecated. as of Spring 2.5, in favor of addAllAttributes(Collection)
 ModelMap addAllObjects(Map objects)
          Deprecated. as of Spring 2.5, in favor of addAllAttributes(Map)
 ModelMap addAttribute(Object attributeValue)
          Add the supplied attribute to this Map using a generated name.
 ModelMap addAttribute(String attributeName, Object attributeValue)
          Add the supplied attribute under the supplied name.
 ModelMap addObject(Object modelObject)
          Deprecated. as of Spring 2.5, in favor of addAttribute(Object)
 ModelMap addObject(String modelName, Object modelObject)
          Deprecated. as of Spring 2.5, in favor of addAttribute(String, Object)
 boolean containsAttribute(String attributeName)
          Does this model contain an attribute of the given name?
 ModelMap mergeAttributes(Map<String,?> attributes)
          Copy all attributes in the supplied Map into this Map, with existing objects of the same name taking precedence (i.e.
 
Methods inherited from class java.util.LinkedHashMap
clear, containsValue, get, removeEldestEntry
 
Methods inherited from class java.util.HashMap
clone, containsKey, entrySet, isEmpty, keySet, put, putAll, remove, size, values
 
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
containsKey, entrySet, equals, hashCode, isEmpty, keySet, put, putAll, remove, size, values
 

Constructor Detail

ModelMap

public ModelMap()
Construct a new, empty ModelMap.


ModelMap

public ModelMap(String attributeName,
                Object attributeValue)
Construct a new ModelMap containing the supplied attribute under the supplied name.

See Also:
addAttribute(String, Object)

ModelMap

public ModelMap(Object attributeValue)
Construct a new ModelMap 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,
                             Object attributeValue)
Add the supplied attribute under the supplied name.

Parameters:
attributeName - the name of the model attribute (never null)
attributeValue - the model attribute value (can be null)

addAttribute

public ModelMap addAttribute(Object attributeValue)
Add the supplied attribute to this Map using a generated 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 for null rather than for empty collections as is already done by JSTL tags.

Parameters:
attributeValue - the model attribute value (never null)

addAllAttributes

public ModelMap addAllAttributes(Collection<?> attributeValues)
Copy all attributes in the supplied Collection into this Map, using attribute name generation for each element.

See Also:
addAttribute(Object)

addAllAttributes

public ModelMap addAllAttributes(Map<String,?> attributes)
Copy all attributes in the supplied Map into this Map.

See Also:
addAttribute(String, Object)

mergeAttributes

public ModelMap mergeAttributes(Map<String,?> attributes)
Copy all attributes in the supplied Map into this Map, 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 (never null)
Returns:
whether this model contains a corresponding attribute

addObject

@Deprecated
public ModelMap addObject(String modelName,
                                     Object modelObject)
Deprecated. as of Spring 2.5, in favor of addAttribute(String, Object)


addObject

@Deprecated
public ModelMap addObject(Object modelObject)
Deprecated. as of Spring 2.5, in favor of addAttribute(Object)


addAllObjects

@Deprecated
public ModelMap addAllObjects(Collection objects)
Deprecated. as of Spring 2.5, in favor of addAllAttributes(Collection)


addAllObjects

@Deprecated
public ModelMap addAllObjects(Map objects)
Deprecated. as of Spring 2.5, in favor of addAllAttributes(Map)