【问题标题】:The Model parameter in @RequestMapping method@RequestMapping 方法中的 Model 参数
【发布时间】:2016-08-30 08:08:56
【问题描述】:

目前我正在学习 Spring,特别是 Spring MVC 部分,我偶然发现了一些我不太了解它是如何工作的东西。

@RequestMapping("/foo")
public String foo(Model model){
    // code here
    return "foo";
}

上面用@RequestMapping注释的方法接收带有Model类的参数,有时是ModelAndView

我不明白的是Model参数来自哪里以及流程是如何来自使用ComponentScanInternalResourceViewResolver的bean的spring配置类(如WebConfig.java)。

我一直在寻找资源,但找不到任何对我有帮助的东西,甚至是文档,这让我第一次在这里问。

直接的解释将非常有帮助,或者如果有任何来源可以将链接放在这里。 如果它来自文档,请说明它是哪个部分/部分,因为我可能会错过一两件事。

【问题讨论】:

标签: java spring-mvc controller annotations


【解决方案1】:

上面用@RequestMapping注解的方法接收参数 使用 Model 类,有时使用 ModelAndView。

下面的帖子详细解释了ModelAndView和Model

When to use ModelAndView vs Model in Spring?

Model 参数的来源

控制器通常负责准备带有数据的模型映射并选择视图名称,但它也可以直接写入响应流并完成请求。视图名称解析可通过文件扩展名或 Accept 标头内​​容类型协商、bean 名称、属性文件甚至自定义 ViewResolver 实现进行高度配置。模型(MVC 中的 M)是一个 Map 接口,它允许对视图技术进行完全抽象。您可以直接与基于模板的渲染技术(如 JSP、Velocity 和 Freemarker)集成,或直接生成 XML、JSON、Atom 和许多其他类型的内容。模型 Map 被简单地转换为适当的格式,例如 JSP 请求属性、Velocity 模板模型。

参考 - http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-arguments

【讨论】:

  • 我害怕的是,我确实错过了这部分,似乎我还不熟悉文档。尽管如此,您的解释绝对有帮助,并且简单地回答了我所有的奇迹。非常感谢!
  • @anothernem - 如果这回答了您的问题,请将问题标记为已回答,这将对面临相同问题的其他人有所帮助。
猜你喜欢
  • 1970-01-01
  • 2012-10-24
  • 2015-02-10
  • 1970-01-01
  • 2013-08-22
  • 1970-01-01
  • 2018-03-18
  • 2018-05-16
  • 1970-01-01
相关资源
最近更新 更多