开发者

Spring MVC - AJAX-JSON Response to contain rendered JSP view

I need my controller to 开发者_StackOverflow中文版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 call

request.getRequestDispatcher("/WEB-INF/views/my.jsp").include(request, myResponse);    

where myResponse is either a HttpServletResponseWrapper that you've created, or a Spring MockHttpServletResponse. 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:

  1. DWR SwallowingHttpServletResponse
  2. Sitemesh PageResponseWrapper

Enjoy,

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜