使用ModelMap而不是Spring MVC中的简单Map有什么好处。我在代码实现中看到,他们将地图中添加的属性的数据类型作为键,而不是在表单上提供。
任何人都可以用一个例子来解释。
答案 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的接口变体,它具有相同的用途。