【问题标题】:Write json object with controller using rendered jsp使用渲染的jsp用控制器编写json对象
【发布时间】:2013-01-19 17:33:22
【问题描述】:

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

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

我该怎么做? 我试着看 request.getRequestDispatcher("tutorMini").forward(请求,响应) 但是,如果我无法向它传递响应,那么它应该将所有输出写入它。

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

【问题讨论】:

    标签: json jsp model-view-controller spring-mvc


    【解决方案1】:

    由于在将 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 中,并对其进行适当的转义。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-24
    • 2014-07-10
    • 2013-01-27
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    相关资源
    最近更新 更多