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

发布于 2024-10-28 07:40:23 字数 429 浏览 1 评论 0原文

我需要我的控制器返回包含更新的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

等往事风中吹 2024-11-04 07:40:23

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

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

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

在下面编辑

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

两个看起来不错的实现:

  1. DWR SwallowingHttpServletResponse
  2. Sitemesh PageResponseWrapper

享受,

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,

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文