我正在比较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的接口变体的Model接口 这是出于同样的目的。
然而,ModelMap
似乎不会被弃用或其他东西。但为什么ModelMap
没有实现Model
?
答案 0 :(得分:1)
Model
- 特定于Java-5的接口,用于定义模型属性的持有者。主要用于向模型添加属性。允许以java.util.Map访问整个模型。
简单地说,模型可以提供用于渲染视图的属性。
ModelMap
- ModelMap类基本上是一个LinkedHashMap。它为方便起见添加了一些方法。就像上面的模型界面一样, ModelMap 也用于传递值以呈现视图。
ModelMap的优势在于它使我们能够传递一组值并将这些值视为一个Map:
@GetMapping("/printViewPage")
public String passParametersWithModelMap(ModelMap map) {
map.addAttribute("welcomeMessage", "welcome");
map.addAttribute("message", "Baeldung");
return "viewPage";
}
参考;