Controller方法返回void是否可以生成JSON?

时间:2011-11-08 04:15:09

标签: spring spring-mvc jackson

通常从我的Controllers方法返回JSON,我添加一个@ResponseBody注释,让Jackson将我返回的对象映射为JSON。这里没问题。

然而在this question中,OP说“我使用@RequestMapping的其他方法返回void,我仍然可以通过ajax从获取JSON”。

我想知道这怎么可能?我没有理由怀疑,他确实这样做了,所以我想知道如何做到这一点,为了好奇心和提高我对Spring的理解。

1 个答案:

答案 0 :(得分:4)

您可以直接写入HttpServletResponse:

@ResponseBody
public void doSomething(HttpServletRequest request, HttpServletResponse response) {
    response.setContentType("application/json");
    String json = "{\"Hello\": \"World\"}";
    PrintWriter out = response.getWriter();
    out.write(json);
}