I need my controller to return an AJAX JSON response that contains the updated HTML code.
The updated HTML code is created by rendering a JSP view.
For example: JSP:
<tr>
<td>${data1}</td>
<td>${data2}</td>
</tr>
JSON response:
{"columns" : "2", "rows":"1", "data":rendered view}
Currently I'm trying to create a dummy response with "my own" outputstream and put the rendered view content in the json response, but with no luck.
Other than the fact I can't get this solution to work, it doesn't feel right. Any tips on the proper way to do it?
Thanks, Ori
If the view you want to capture is in
/WEB-INF/views/my.jsp
, then callwhere myResponse is either a
HttpServletResponseWrapper
that you've created, or a SpringMockHttpServletResponse
. In the latter case you can get the rendered output from getContentAsString().EDIT below
I ran into another SO question around capturing servlet responses that had some pointers to HttpServletResponseWrappers that you can use.
Two implementations that look good:
Enjoy,