我正在比较Spring MVC中的ModelMap和Model。除了明显的区别(第一个是类,第二个是接口(interface)),在不同情况下是否可以使用一个或另一个更好?
主要将它们用于相同的目的(如spring MVC文档中所述):
只有我发现ModelMap
是增强的Map
,但是与Model
的区别仍然不清楚。
我能否从ModelMap javadoc得出结论,“模型”是Java 5的首选?
但是,似乎不建议弃用ModelMap
或其他东西。但是,为什么ModelMap
不实现Model
呢?
最佳答案
Model
-特定于Java-5的接口(interface),用于定义模型属性的所有者。主要设计用于向模型添加属性。允许以java.util.Map的形式访问整体模型。
简而言之,模型可以提供用于渲染 View 的属性。ModelMap
-ModelMap类基本上是LinkedHashMap。为了方便起见,它添加了一些方法。就像上面的 Model 接口(interface)一样, ModelMap 也用于传递值以呈现 View 。
ModelMap的优点在于,它使我们能够传递值的集合,并将这些值当作在Map中一样对待:
@GetMapping("/printViewPage")
public String passParametersWithModelMap(ModelMap map) {
map.addAttribute("welcomeMessage", "welcome");
map.addAttribute("message", "Baeldung");
return "viewPage";
}
引用;