如何在textarea或jsp上打印Stringbuffer内容?

时间:2013-02-19 15:51:11

标签: jsp

setvlet中的代码:

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

2 个答案:

答案 0 :(得分:0)

在JSP中打印:

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

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

  • “&gt;” 中成为“&amp; gt”;
  • “&LT;”成为“&amp; lt”;

    ...

答案 1 :(得分:0)

它已成功打印。右键单击并查看源。一切都在那里!它只能被识别为无效的HTML,因此浏览器在演示过程中会忽略它。

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

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

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

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

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

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

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

.preformatted {
    white-space: pre;
}