java - Spring MVC 中的 ModelMap 与模型

标签 java spring spring-mvc

我正在比较ModelMapModel来自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/

相关文章:

spring - 如何在Spring Boot中禁用H2的DATABASE_TO_UPPER,无需显式连接URL

javascript - 如何使用ajax将表单数据发送到Spring Controller

java - Spring Boot 响应压缩不起作用

Java OpenCL 与 JOCL : What is a direct buffer?

java - 使用哪种设计模式来避免验证类中的 if/else?

java - 具有多个文件附加器的 Log4j2 json 配置

java - Spring 批处理分区中网格大小的动态值

java - Spring Boot 记录静态加载的数据

java - org.springframework.web.bind.MissingServletRequestParameterException异常

java - Spring 工具套件(以及所有 Spring 项目)中出现未知的 Spring 错误 我该如何解决?