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`

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 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)`
  - `org.springframework.web.servlet.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, 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

Modifier and Type
Method
Description
`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`
`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.
`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 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, 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 Details

### ModelMap

public ModelMap()
Construct a new, empty `ModelMap`.

### ModelMap

public ModelMap(String attributeName, @Nullable 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 Details

### 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 (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(@Nullable 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(@Nullable Map<String,?> attributes)
Copy all attributes in the supplied `Map` into this `Map`.

See Also:
  - `addAttribute(String, Object)`

### mergeAttributes

public ModelMap mergeAttributes(@Nullable 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

### 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 (never `null`)
Returns:
  the corresponding attribute value, or `null` if none
Since:
  5.2