Class ModelMap

All Implemented Interfaces:
Serializable, Cloneable, Map<String,Object>
Direct Known Subclasses:
ExtendedModelMap, RedirectAttributesModelMap

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:
  • 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:
    • 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:
  • 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:
    • addAllAttributes

      public ModelMap addAllAttributes(@Nullable Map<String,?> attributes)
      Copy all attributes in the supplied Map into this Map.
      See Also:
    • 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