Spring MVC的 - AJAX,JSON响应包含渲染JSP视图视图、MVC、Spring、AJAX

2023-09-11 00:35:41 作者:莪用温瞳♀解妳情

我需要我的控制器返回一个AJAX JSON响应包含更新的HTML code。

I need my controller to return an AJAX JSON response that contains the updated HTML code.

更新HTML code是通过渲染一个JSP视图中创建。

The updated HTML code is created by rendering a JSP view.

例如: JSP:

<tr>
<td>${data1}</td>
<td>${data2}</td>
</tr>

JSON响应:

JSON response:

{"columns" : "2", "rows":"1", "data":rendered view}

目前我试图创建一个我自己的OutputStream一个虚拟的响应,并把在JSON响应渲染视图的内容,但没有运气。

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?

谢谢, 大利

推荐答案

如果你想捕捉的看法是 /WEB-INF/views/my.jsp ,然后调用

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);    

在这里myResponse或者是一个 HttpServletResponseWrapper 您已经创建,或弹簧 MockHttpServletResponse 。在后一种情况下,可以得到从getContentAsString()输出呈现

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().

下面

我遇到了另一个SO question各地捕获的servlet反应,有一些指向HttpServletResponseWrappers,你可以使用。

I ran into another SO question around capturing servlet responses that had some pointers to HttpServletResponseWrappers that you can use.

两个实现,好看:

DWR SwallowingHttpServletResponse SiteMesh的 PageResponseWrapper DWR SwallowingHttpServletResponse Sitemesh PageResponseWrapper

享受,

 
精彩推荐
图片推荐