setvlet中的代码:
request.setAttribute(“data”,sb); request.getRequestDispatcher(“/ viewLogs.jsp”)。forward(request,response); 这里sb是字符串缓冲区。 当我用它在控制台上打印sb时它完美打印。但是当试图在viewLogs.jsp中使用时打印相同的 $ {}数据 它打印不正确(字符串缓冲区也有XML数据。没有标签在jsp页面上打印)。但是相同的字符串缓冲区在控制台上完美打印。 请建议我如何正确地向用户显示字符串缓冲区内容?
答案 0 :(得分:0)
在JSP中打印:
<% out.append( sb.toString() ); %>
但首先你必须将sb中的内容转换为正确的HTML:
“&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;
}