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?

questionAnswers(3)

yourAnswerToTheQuestion