Spring MVC中的ModelMap与模型

时间:2015-01-28 15:11:56

标签: java spring spring-mvc

我正在比较Spring MVC中的ModelMapModel。除了明显不同之外,首先是一个类,第二个界面是否有任何差异使得在不同情况下使用一个或另一个更好?

它们主要用于相同目的(来自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

1 个答案:

答案 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";
}

参考;