Spring MVC - AJAX-JSON 响应包含渲染的 JSP 视图
我需要我的控制器返回包含更新的 HTML 代码的 AJAX JSON 响应。
更新的 HTML 代码是通过呈现 JSP 视图创建的。
例如: JSP:
<tr>
<td>${data1}</td>
<td>${data2}</td>
</tr>
JSON 响应:
{"columns" : "2", "rows":"1", "data":rendered view}
目前,我正在尝试使用“我自己的”输出流创建一个虚拟响应,并将渲染的视图内容放入 json 响应中,但没有成功。
除了我无法让这个解决方案发挥作用之外,它感觉不对。 关于正确方法的任何提示?
谢谢, 奥里
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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您要捕获的视图位于
/WEB-INF/views/my.jsp
中,则调用myResponse,其中 myResponse 是您创建的
HttpServletResponseWrapper
或SpringMockHttpServletResponse
。在后一种情况下,您可以从 getContentAsString() 获取渲染的输出。在下面编辑
我遇到了另一个有关捕获servlet响应的问题一些指向您可以使用的 HttpServletResponseWrappers 的指针。
两个看起来不错的实现:
享受,
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,