org.springframework.ui

## 接口 Model

- 所有已知实现类:
    BindingAwareConcurrentModel, BindingAwareModelMap, ConcurrentModel, ExtendedModelMap

      public interface Model

  Java-5-specific 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`.
  从以下版本开始:
    2.5.1
  作者:
    Juergen Hoeller

- - ### 方法概要

    所有方法 实例方法 抽象方法
    限定符和类型 | 方法和说明
    --- | ---
    `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?
    `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).

- - ### 方法详细资料

    - #### addAttribute

          Model addAttribute(String attributeName,
                             @Nullable
                             Object attributeValue)

      Add the supplied attribute under the supplied name.
      参数:
        `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.

      参数:
        `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.
      另请参阅:
        `addAttribute(Object)`

    - #### addAllAttributes

          Model addAllAttributes(Map<String,?> attributes)

      Copy all attributes in the supplied `Map` into this `Map`.
      另请参阅:
        `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?
      参数:
        `attributeName` - the name of the model attribute (never `null`)
      返回:
        whether this model contains a corresponding attribute

    - #### asMap

          Map<String,Object> asMap()

      Return the current set of model attributes as a Map.