【发布时间】:2015-03-27 13:19:21
【问题描述】:
我正在比较 Spring MVC 中的 ModelMap 和 Model。除了第一个是类和第二个接口的明显区别之外有什么区别可以在不同情况下使用一个或另一个更好吗?
它们主要用于相同目的(来自spring MVC 文档):
java.util.Map/org.springframework.ui.Model/ org.springframework.ui.ModelMap 用于丰富隐式模型 暴露在网络视图中。
只有我发现ModelMap 增强了Map,但与Model 的区别仍不清楚。
我可以从 ModelMap javadoc 中得出结论,'Model' 是 java 5 的首选吗?
查看基于 Java-5 的接口变体的模型接口 达到同样的目的。
但是,ModelMap 似乎不会被弃用。但是为什么ModelMap没有实现Model呢?
【问题讨论】:
-
ExtendedModelMap正在扩展ModelMap并实现ModelMap。使用Model时,您可以链接方法调用,因为大多数方法返回Model和Map或ModelMap并非如此。 -
感谢
ExtendedModelMap。 AFAIK 你也可以用ModelMap链接调用(与我已经注意到的Map不同)。 -
啊,是的,你是对的。
ModelMap也早于Model接口。对于该接口,基本上有两种实现,ExtendedModelMap和RedirectAttributesModelMap(还有BindingAwareModelMap,它是ExtendedModelMap的扩展)。对于请求映射方法中的用法,使用哪一种并不重要,尽管我可能会建议使用Model接口而不是其中一种实现。但这是非常自以为是的:)。 -
可以在stackoverflow.com/questions/18486660/…找到类似问题的答案
标签: java spring spring-mvc