0

setvlet 中的代码:

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

4

2 回答 2

0

在 JSP 中打印:

<% out.append( sb.toString() ); %>

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

  • ">" 变成 ">";

  • “<”变成“<”;

    ...

于 2013-02-19T15:59:22.133 回答
0

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

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

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

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

如果您想保留格式(空格等),请将其放入<pre>.

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

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

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

.preformatted {
    white-space: pre;
}
于 2013-02-19T16:24:28.123 回答