通常从我的Controllers方法返回JSON,我添加一个@ResponseBody
注释,让Jackson将我返回的对象映射为JSON。这里没问题。
然而在this question中,OP说“我使用@RequestMapping的其他方法返回void,我仍然可以通过ajax从获取JSON”。
我想知道这怎么可能?我没有理由怀疑,他确实这样做了,所以我想知道如何做到这一点,为了好奇心和提高我对Spring的理解。
答案 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);
}