Spring中的ModelMap用法

时间:2010-05-25 07:16:28

标签: java spring spring-mvc

使用ModelMap而不是Spring MVC中的简单Map有什么好处。我在代码实现中看到,他们将地图中添加的属性的数据类型作为键,而不是在表单上提供。

任何人都可以用一个例子来解释。

3 个答案:

答案 0 :(得分:46)

ModelMap子类LinkedHashMap,并提供一些额外的便利,使控制器更容易使用

    只能使用一个值调用
  • addAttribute,然后从类型中推断出地图密钥。
  • addAttribute方法都返回ModelMap,因此您可以链接一起调用的方法,例如modelMap.addAttribute('x', x).addAttribute('y',y)
  • addAttribute方法检查值是否为空
  • ModelMap的泛型类型固定为Map<String, Object>,这是唯一对视图模型有意义的内容。

所以没有什么是惊天动地的,但足以使它比原始Map更好。 Spring会让你使用其中任何一个。

您还可以使用Model接口,该接口除了addAttribute方法之外什么都不提供,并且由ExtendedModelMap类实现,它本身增加了更多便利。

答案 1 :(得分:2)

ModelMap.addAttribute将执行NULL检查,ModelMap.put继承自LinkedHashMap

答案 2 :(得分:0)

ModalMap扩展了LinkedHashMap

在构建用于UI工具的模型数据时使用Map的实现。支持链式调用和模型属性名称的生成。

此类充当Servlet和Portlet MVC的通用模型持有者,但不依赖于其中任何一个。查看Model接口,了解基于Java-5的接口变体,它具有相同的用途。