我正在比较ModelMap和 Model来自Spring MVC。除了第一个是类而第二个是接口(interface)的明显区别之外,是否有任何区别使得在不同情况下使用一个或另一个更可取?
它们主要用于相同目的(来自 spring MVC 文档):
java.util.Map / org.springframework.ui.Model / org.springframework.ui.ModelMap for enriching the implicit model that is exposed to the web view.
只有我发现 ModelMap
是增强的 Map
,但是与 Model
的区别仍然不清楚。
我可以从 ModelMap javadoc 得出结论,“模型”是 java 5 的首选吗?
Check out the Model interface for a Java-5-based interface variant that serves the same purpose.
然而,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";
}
引用资料;
关于java - Spring MVC 中的 ModelMap 与模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28195677/