我正在比较Spring MVC中的ModelMapModel。除了明显的区别(第一个是类,第二个是接口(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";
}

引用;
  • https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/ui/Model.html
  • https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/ui/ModelMap.html
  • 09-10 05:53
    查看更多