在@RequestMapping方法中使用spring mvc中的哪种返回类型?
我知道在Spring的mvc中@RequestMapping方法中的@Controller类我可以返回
- 串
- 模型
- 的ModelAndView
我不明白这些行为之间的差异。 你能解释一下吗?
在Spring 3.2.x中,还有更多只有那些3.请参阅Spring网站上的文档。 Latests Spring(4.2.x) 文档 。
以下是支持的返回类型:
- 一个ModelAndView对象,该模型隐式地丰富了命令对象和
@ModelAttribute
注释引用数据访问器方法的结果。 - 一个Model对象,其视图名称通过RequestToViewNameTranslator隐式确定,并且模型隐式地使用命令对象和
@ModelAttribute
注释的引用数据访问器方法的结果。 - 用于公开模型的Map对象,其中视图名称通过RequestToViewNameTranslator隐式确定,模型隐式地使用命令对象和
@ModelAttribute
注释的引用数据访问器方法的结果。 - 一个View对象,模型通过命令对象和
@ModelAttribute
注释的引用数据访问器方法隐式确定。 处理程序方法还可以通过声明Model参数(参见上文)以编程方式丰富模型。 - 一个String值,它被解释为逻辑视图名称,模型通过命令对象和
@ModelAttribute
注释的引用数据访问器方法隐式确定。 处理程序方法还可以通过声明Model参数(参见上文)以编程方式丰富模型。 - 如果方法处理响应本身(通过直接编写响应内容,为此目的声明类型为ServletResponse / HttpServletResponse的参数)或者如果视图名称应该通过RequestToViewNameTranslator隐式确定(未在此处声明响应参数),则返回void处理程序方法签名)。
- 如果使用@ResponseBody注释该方法,则将返回类型写入响应HTTP正文。 返回值将使用HttpMessageConverters转换为声明的方法参数类型。 请参阅“使用
@ResponseBody
注释映射响应正文”一节。 - 一个HttpEntity **或** ResponseEntity对象,用于提供对Servlet响应HTTP头和内容的访问。 使用HttpMessageConverters将实体主体转换为响应流。 请参阅“使用HttpEntity”一节。
- 当应用程序想要在Spring MVC管理的线程中异步生成返回值时,可以返回Callable 。
- 当应用程序想要从自己选择的线程生成返回值时,可以返回DeferredResult 。
- 任何其他返回类型都被视为要向视图公开的单个模型属性,使用在方法级别通过
@ModelAttribute
指定的属性名称(或基于返回类型类名称的默认属性名称)。 该模型隐含地使用命令对象和@ModelAttribute
注释的引用数据访问器方法的结果进行了丰富。
除非您的返回类型为void
或使用@ResponseBody
注释您的方法, @ResponseBody
Spring MVC将尝试解析View
以呈现响应。
因此,您必须以某种方式将框架指向View
实例或将视图的名称指向返回值中的String
(或依赖于隐式解析并且可能仅返回Model
); 如果返回一个名称(仅作为String
或嵌入在ModelAndView
),则会将其传递给已配置的ViewResolver
以获取实际的View
实例。
ModelAndView
容器确实包含对View
或视图名称的引用,并且还嵌入要使用的模型。
一切都在文档中: http : //static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/mvc.html#mvc-ann-return-types
- 如何在HttpServletRequest中访问POST参数?
- 我必须将所有依赖DLL放入JDK的bin文件夹中吗?
- 如何在Oracle Weblogic管理员控制台上正确部署EAR文件
- 在Java中重写equals时,为什么使用Object以外的参数不起作用?
- 如何使用generics关系实现多态JPA实体
- java.lang.NoSuchMethodError:org.hibernate.SessionFactory.openSession()Lorg / hibernate / classic / Session
- 为具有生成ID的实体实现equals()时的最佳做法是什么
- 如何在java中将包含逗号的数字字符串解析为整数?
- 从其他字符串集合的示例中拆分字符串