Strumień bezpośrednio do strumienia wyjściowego odpowiedzi w metodzie obsługi kontrolera Spring MVC 3.1
Mam metodę kontrolera, która obsługuje wywołania ajax i zwraca JSON. Używam biblioteki JSON z json.org do utworzenia JSON.
Mogę wykonać następujące czynności:
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String getJson()
{
JSONObject rootJson = new JSONObject();
// Populate JSON
return rootJson.toString();
}
Jednak nie jest efektywne zestawianie ciągu JSON, tylko po to, aby Spring zapisał go do strumienia wyjściowego odpowiedzi.
Zamiast tego mogę napisać to bezpośrednio do strumienia wyjściowego odpowiedzi w ten sposób:
@RequestMapping(method = RequestMethod.POST)
public void getJson(HttpServletResponse response)
{
JSONObject rootJson = new JSONObject();
// Populate JSON
rootJson.write(response.getWriter());
}
Ale wydaje się, że byłoby lepszy sposób, aby to zrobić, niż uciekać się do mijaniaHttpServletResponse
do metody obsługi.
Czy istnieje inna klasa lub interfejs, który może zostać zwrócony z metody obsługi, którą mogę użyć, wraz z@ResponseBody
adnotacja?