我知道在Spring中使用@RequestMapping方法的@Controller类中的mvc我可以返回
我不明白这些行为之间的差异。 你能解释一下吗?
答案 0 :(得分:22)
在Spring 3.2.x中,还有更多只有那些3.请参阅Spring website上的文档。 Latests Spring(4.2.x)documentation。
以下是支持的返回类型:
@ModelAttribute
带注释的参考数据访问器方法的结果进行了丰富。@ModelAttribute
带注释的参考数据访问器方法的结果。@ModelAttribute
带注释的引用数据访问器方法的结果进行了丰富。 @ModelAttribute
带注释的参考数据访问器方法隐式确定。处理程序方法还可以通过声明Model参数(见上文)以编程方式丰富模型。@ModelAttribute
带注释的引用数据访问器方法隐式确定。处理程序方法还可以通过声明Model参数(见上文)以编程方式丰富模型。@ResponseBody
注释映射响应正文”一节。@ModelAttribute
指定的属性名称(或基于返回类型类名称的默认属性名称),将任何其他返回类型视为要向视图公开的单个模型属性)。该模型隐含地使用命令对象和@ModelAttribute
带注释的参考数据访问器方法的结果进行了丰富。答案 1 :(得分:2)
除非您的返回类型为void
,或者您使用@ResponseBody
注释方法,否则Spring MVC将尝试解析View
以呈现响应。
因此,您必须以某种方式将框架指向View
实例或将视图名称指定为返回值中的String
(或依赖于隐式解析并且可能仅返回{{ 1}});如果您返回一个名称(仅作为Model
或嵌入String
),则会将其传递给已配置的ModelAndView
以获取实际的ViewResolver
实例。
View
容器确实包含对ModelAndView
或视图名称的引用,并且还嵌入了要使用的模型。
答案 2 :(得分:0)