@RequestMapping方法中的Model参数

时间:2016-08-30 08:08:56

标签: java spring-mvc controller annotations

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

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

上面标有@RequestMapping的方法会收到类Model的参数,有时会收到ModelAndView

我不明白的是Model参数来自哪里以及流是如何来自使用ComponentScan和Bean of {的Spring配置类(如WebConfig.java) {1}}。

我一直在寻找消息来源,我找不到任何对我有用的东西,甚至是文档,这让我第一次在这里问。

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

1 个答案:

答案 0 :(得分:3)

  

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

以下帖子详细解释了ModelAndView和Model

When to use ModelAndView vs Model in Spring?

  

其中Model参数来自

Controller通常负责准备带有数据的模型Map并选择视图名称,但它也可以直接写入响应流并完成请求。通过文件扩展名或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