Fluxo diretamente para o fluxo de saída de resposta no método handler do controlador Spring MVC 3.1
Eu tenho um método controlador que lida com chamadas ajax e retorna JSON. Eu estou usando a biblioteca JSON do json.org para criar o JSON.
Eu poderia fazer o seguinte:
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String getJson()
{
JSONObject rootJson = new JSONObject();
// Populate JSON
return rootJson.toString();
}
Mas é ineficiente juntar a string JSON, apenas para que o Spring a grave no fluxo de saída da resposta.
Em vez disso, posso escrevê-lo diretamente no fluxo de saída de resposta da seguinte forma:
@RequestMapping(method = RequestMethod.POST)
public void getJson(HttpServletResponse response)
{
JSONObject rootJson = new JSONObject();
// Populate JSON
rootJson.write(response.getWriter());
}
Mas parece que haveria uma maneira melhor de fazer isso do que ter que recorrer à passagem doHttpServletResponse
no método manipulador.
Existe outra classe ou interface que pode ser retornada do método manipulador que eu posso usar, junto com o@ResponseBody
anotação?