一尘不染

Spring MVC-AJAX-JSON响应以包含呈现的JSP视图

ajax

我需要我的控制器返回包含更新的HTML代码的AJAX JSON响应。

通过渲染JSP视图来创建更新的HTML代码。

例如:JSP:

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

JSON响应:

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

目前,我正在尝试使用“我自己的”输出流创建一个虚拟响应,并将呈现的视图内容放入json响应中,但是没有运气。

除了我无法使用此解决方案的事实之外,感觉不对。有关正确方法的任何提示?

谢谢Ori


阅读 167

收藏
2020-07-26

共1个答案

一尘不染

如果您要捕获的视图位于中/WEB-INF/views/my.jsp,则调用

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

其中myResponse要么是HttpServletResponseWrapper您创建的,要么是Spring
MockHttpServletResponse。在后一种情况下,您可以从getContentAsString()获取呈现的输出。

在下面编辑

我遇到了另一个有关捕获servlet响应的问题,该响应包含一些可以使用的HttpServletResponseWrappers指针。

看起来不错的两个实现:

  1. DWR SwallowingHttpServletResponse
  2. Sitemesh PageResponseWrapper

请享用,

2020-07-26