从Spring MVC控制器方法返回null

4

我已经阅读了Spring文档,但没有找到关于返回类型为String的Spring MVC控制器方法返回null所期望行为相关的信息。

请问是否有人能够回答这个问题或者提供相关的文档资料?换句话说,从Spring MVC控制器方法返回null的好处是什么?


你使用的 Spring 版本是哪个?你的控制器设置是如何完成的? - Santosh Gokak
你的问题已经在这篇文章中得到了回答:https://dev59.com/EGw15IYBdhLWcg3wCXOJ - Jerome Dalbert
Jerome:你一定误读了我的问题。你提供的链接解释了控制器如何解析视图名称。我的问题是:“从控制器方法返回null有什么好处?” - balteo
Santosh:我使用的是当前版本的Spring,即3.1,并且我依赖于Spring Roo的默认配置来设置控制器。 - balteo
2个回答

6
在Spring 2中,如果你从控制器返回null,就是告诉Spring调度程序不要搜索视图。
如果你自己处理响应并直接编写响应内容,然后刷新输出流(例如,管理文件下载),那么你会这样做。
如果你没有返回null,Spring会转发到一个试图来尝试写入响应,破坏你已经编写的数据或导致异常,如果响应已经提交。
返回null是一种向Spring的视图解析器说"退后"的方式。
在Spring 3中有很多变化,现在可以通过@ RequestMapping注释的方法返回void来实现相同的效果。
如果你的返回类型是String但你返回null,我认为它会使用默认的RequestToViewNameTranslator将传入的HttpServletRequest转换为逻辑视图名称,当视图名称没有明确提供时。

0

在Spring MVC中,返回类型为String通常表示您的视图解析器,它可以是JSP、HTML或任何其他视图页面。

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

假设您想要返回一个普通的字符串,比如“hi”,您可以使用@ResponseBody注解来实现这个目的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接