Имам метод на контролер, който обработва 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
?
HttpMessageConverter
. - person John S   schedule 08.03.2013