4

我已阅读 Spring 文档,但无法找到有关返回 null (返回类型为 String)的 Spring MVC 控制器方法的预期行为的相关信息。

有人可以回复或指导我查阅相关文件吗?或者换句话说,从 Spring MVC 控制器方法返回 null 有什么好处?

4

2 回答 2

6

在 Spring 2 中,当您从控制器返回 null 时,您是在对 Spring 调度程序说您不希望它搜索视图。

如果您通过直接编写响应内容然后刷新输出流来自己处理响应(例如,您正在管理文件下载),那么您可以这样做。

如果您没有返回 null,那么 Spring 会转发到一个视图,该视图也会尝试写入响应,从而弄乱您已经写入的数据,或者如果响应已经提交,则会导致异常。

返回 null 是回避 Spring 的视图解析器的一种方式。

在 Spring 3 中发生了很多变化,现在可以通过使用返回 void 的 @RequestMapping 注释方法来获得相同的结果。

如果您的返回类型为 String 但您返回 null 我认为它使用默认的 RequestToViewNameTranslator 在未显式提供视图名称时将传入的 HttpServletRequest 转换为逻辑视图名称。

于 2012-11-11T21:57:43.313 回答
0

spring mvc 中的返回类型 String 一般返回你的视图解析器,它可以是你的 JSP、html 或任何其他视图页面。

http://www.mkyong.com/spring3/spring-3-mvc-hello-world-example/

假设你想返回一个像“hi”这样的普通字符串,你可以使用@ResponseBody 注解来做到这一点。

于 2012-11-12T11:12:02.587 回答