【发布时间】:2013-09-07 13:46:27
【问题描述】:
我知道在@RequestMapping方法中@Controller类中的spring mvc我可以返回
- 字符串
- 型号
- 模型和视图
我不明白这些操作之间的区别。 能解释一下吗?
【问题讨论】:
标签: java spring spring-mvc
我知道在@RequestMapping方法中@Controller类中的spring mvc我可以返回
我不明白这些操作之间的区别。 能解释一下吗?
【问题讨论】:
标签: java spring spring-mvc
在 Spring 3.2.x 中,不仅仅是这 3 个。请参阅Spring website 上的文档。最新 Spring (4.2.x) documentation.
以下是支持的返回类型:
@ModelAttribute 带注释的引用数据访问器方法的结果。@ModelAttribute 带注释的引用数据访问器方法的结果。@ModelAttribute 带注释的参考数据访问器方法的结果。李>
@ModelAttribute 带注释的参考数据访问器方法隐式确定。处理程序方法还可以通过声明模型参数以编程方式丰富模型(见上文)。@ModelAttribute 带注释的参考数据访问器方法隐式确定。处理程序方法还可以通过声明模型参数以编程方式丰富模型(见上文)。@ResponseBody 注释映射响应正文”部分。@ModelAttribute 指定的属性名称(或基于返回类型类名称的默认属性名称)。该模型隐含地丰富了命令对象和 @ModelAttribute 带注释的参考数据访问器方法的结果。【讨论】:
除非您的返回类型是 void 或者您使用 @ResponseBody 注释您的方法,否则 Spring MVC 将尝试解析 View 以呈现响应。
因此,您必须在返回值中以某种方式将框架指向View 实例或视图名称为String(或依赖隐式解析,也许只返回Model);如果您返回一个名称(仅作为 String 或嵌入在 ModelAndView 中),然后将传递给已配置的 ViewResolver 以获取实际的 View 实例。
ModelAndView 容器确实包含对 View 或视图名称的引用,并且还嵌入了要使用的模型。
【讨论】: