Package org.springframework.ui

# Interface Model

All Known Implementing Classes:
  `BindingAwareConcurrentModel`, `BindingAwareModelMap`, `ConcurrentModel`, `ExtendedModelMap`

public interface Model
Interface that defines a holder for model attributes.

Primarily designed for adding attributes to the model.

Allows for accessing the overall model as a `java.util.Map`.

Since:
  2.5.1
Author:
  Juergen Hoeller

## Method Summary

Modifier and Type
Method
Description
`Model`
`addAllAttributes(Collection<?> attributeValues)`
Copy all attributes in the supplied `Collection` into this `Map`, using attribute name generation for each element.
`Model`
`addAllAttributes(Map<String,?> attributes)`
Copy all attributes in the supplied `Map` into this `Map`.
`Model`
`addAttribute(Object attributeValue)`
Add the supplied attribute to this `Map` using a `generated name`.
`Model`
`addAttribute(String attributeName, Object attributeValue)`
Add the supplied attribute under the supplied name.
`Map<String,Object>`
`asMap()`
Return the current set of model attributes as a Map.
`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.
`Model`
`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.

## Method Details

### addAttribute

Model 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

Model 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

Model 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

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

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

### mergeAttributes

Model 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

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 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

### asMap

Map<String,Object> asMap()
Return the current set of model attributes as a Map.