我需要我的控制器返回包含更新的HTML代码的AJAX JSON响应。
通过渲染JSP视图来创建更新的HTML代码。
例如:JSP:
<tr> <td>${data1}</td> <td>${data2}</td> </tr>
JSON响应:
{"columns" : "2", "rows":"1", "data":rendered view}
目前,我正在尝试使用“我自己的”输出流创建一个虚拟响应,并将呈现的视图内容放入json响应中,但是没有运气。
除了我无法使用此解决方案的事实之外,感觉不对。有关正确方法的任何提示?
谢谢Ori
如果您要捕获的视图位于中/WEB-INF/views/my.jsp,则调用
/WEB-INF/views/my.jsp
request.getRequestDispatcher("/WEB-INF/views/my.jsp").include(request, myResponse);
其中myResponse要么是HttpServletResponseWrapper您创建的,要么是Spring MockHttpServletResponse。在后一种情况下,您可以从getContentAsString()获取呈现的输出。
HttpServletResponseWrapper
MockHttpServletResponse
在下面编辑
我遇到了另一个有关捕获servlet响应的问题,该响应包含一些可以使用的HttpServletResponseWrappers指针。
看起来不错的两个实现:
请享用,