0

我使用 Spring MVC。我想通过转发来呈现一些jsp。然后我想将结果写入json。

例如,我想渲染我的复杂 jsp 并在退出时获得: {"result":"ok","html":"......."}

我怎样才能做到这一点?我试图查看 request.getRequestDispatcher("tutorMini").forward(request, response) 但如果我不能将响应传递给它,那么它应该将所有输出写入它。

而且我尝试在jsp中使用一些json标签,但它在层次结构方面存在一些问题: HTML output with jsp:include and json-taglib

4

1 回答 1

0

由于在将 HTML 插入 JSON(转义'")时需要应用额外的转换,因此您不能将 JSP 的输出直接写入响应。

因此,您需要创建一个实例ServletResponseWrapper来保存输出(通过覆盖getWriter()和/或getOutputStream())并将其传递给RequestDispatcher.include()(它看起来比forward()这种情况更合适):

MyServletResponseWrapper wrapper = new MyServletResponseWrapper(response);
request.getRequestDispatcher("tutorMini").include(request, wrapper);
String html = wrapper.getSavedOutput();

然后你可以将保存的内容插入到 JSON 中,并适当地转义它。

于 2013-01-19T17:57:25.687 回答