【问题标题】:How to print Stringbuffer content in textarea or on jsp?如何在 textarea 或 jsp 中打印 Stringbuffer 内容?
【发布时间】:2013-02-19 15:51:10
【问题描述】:

setvlet 中的代码:

request.setAttribute("数据", sb); request.getRequestDispatcher("/viewLogs.jsp").forward(request, response); 这里 sb 是字符串缓冲区。 当我用来在控​​制台上打印 sb 时,它的打印效果很好。但是当我尝试在 viewLogs.jsp 中打印相同的内容时,我正在使用 ${数据} 它没有正确打印(字符串缓冲区也有 XML 数据。jsp 页面上没有打印标签)。但是相同的字符串缓冲区在控制台上打印得很好。 请建议我如何向用户正确显示字符串缓冲区内容?

【问题讨论】:

    标签: jsp


    【解决方案1】:

    打印成功。右键单击并查看源代码。都在里面!它只是无法识别为有效的 HTML,因此浏览器在呈现过程中会忽略它。

    如果您的意图是将 XML 内容显示为纯文本,那么您应该使用 XML 转义字符,否则会被解释为 HTML,例如 <> 指示 HTML 标记的开始和结束。

    规范的解决方案是为此使用 JSTL <c:out>

    <c:out value="${data}" />
    

    如果您想保留格式(空格等),请将其放入&lt;pre&gt;

    <pre><c:out value="${data}" /></pre>
    

    或者,在父元素上应用 CSS white-space:pre

    <div class="preformatted"><c:out value="${data}" /></div>
    

    .preformatted {
        white-space: pre;
    }
    

    【讨论】:

    • 您在帮助我们了解您的具体问题方面毫无帮助。请用开发人员的术语而不是最终用户的术语详细说明“打印不正确”。当您按照答案中的提示进行右键单击和 查看源代码 时,您究竟看到了什么?当您改用&lt;c:out&gt; 时,您在双方看到了什么?也许它在生成的 HTML 源代码中仍然显示为未解析,因此您只是忘记安装/声明 JSTL?
    • Hi Balu Sory .. 当我右键单击并查看源代码时。当我在 JSP 中添加 () 时,我可以看到正确的响应页。它没有向用户正确显示(例如,行对齐和没有 xml 标签)。我需要 JSP 页面上的准确输出,当我点击 viewsource 时我可以看到。
    • 那么,您想保留格式吗?只需将其放在 HTML &lt;pre&gt; 元素中,或在父 HTML 元素上应用 CSS white-space: pre
    • 我想要 JSP 页面上 value="${data}" 中的内容原样。当我查看源代码但没有进入 JSP 页面时,我可以完美地看到。
    • 如前所述...只需将其放在 HTML &lt;pre&gt; 元素中,或在父 HTML 元素上应用 CSS white-space: pre。还是您对 HTML/CSS 也完全陌生,不理解我所说的?
    【解决方案2】:

    在 JSP 中打印:

    &lt;% out.append( sb.toString() ); %&gt;

    但首先你必须将 sb 中的内容转换为正确的 HTML:

    • ">" 变成 "&gt";

    • ...

    【讨论】:

    • 但是jsp中没有sb。你能详细说明我需要做什么吗?
    猜你喜欢
    • 1970-01-01
    • 2019-08-29
    • 2014-12-25
    • 2015-04-12
    • 1970-01-01
    • 2012-10-03
    • 2020-08-31
    • 2012-11-20
    • 2019-06-25
    相关资源
    最近更新 更多