为什么我需要将@ResponseBody添加到我的控制器操作中?

时间:2013-10-09 20:05:44

标签: java spring spring-mvc annotations

根据Spring documentation,此注释指示应将方法返回值绑定到Web响应主体。我明白了,而且我一直在使用它来进行我的ajax调用。但是,我最近遇到了不使用注释的代码。

所以我想我的问题确实是为什么它没有注释就可以工作?

1 个答案:

答案 0 :(得分:3)

没有注释,就会发生不同的过程。根据返回类型(you can find the defaults in this document),响应将以不同方式生成。

例如,如果您的返回类型为String,则默认情况下,返回值将被解析为View名称,ViewResolver将尝试解析并创建View对象,RequestDispatcher将转发/包含/重定向到它(例如jsp),以便Servlet容器可以处理生成响应。

处理返回类型的实际接口是HandlerMethodReturnValueHandler,每种类型都有很多实现。 See here for more information