У меня есть метод контроллера, который обрабатывает вызовы ajax и возвращает JSON. Я использую JSON-библиотеку от json.org для создания JSON.
Я мог бы сделать следующее:
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String getJson()
{
JSONObject rootJson = new JSONObject();
// Populate JSON
return rootJson.toString();
}
Но неэффективно собрать строку JSON, только чтобы Spring записать ее в выходной поток ответа.
Вместо этого я могу записать его непосредственно в выходной поток ответа следующим образом:
@RequestMapping(method = RequestMethod.POST)
public void getJson(HttpServletResponse response)
{
JSONObject rootJson = new JSONObject();
// Populate JSON
rootJson.write(response.getWriter());
}
Но похоже, что был бы лучший способ сделать это, чем прибегать к передаче HttpServletResponse
в метод обработчика.
Есть ли другой класс или интерфейс, который может быть возвращен из метода обработчика, который я могу использовать, вместе с аннотацией @ResponseBody
?