我所附“\ n”来字符串和利用当s标签textarea的,换行已经被附加和数据示逐行。 但是,当我用c出标签,数据显示在一行。 我怎么能显示出与C OUT标签使用逐行?
StringBuffer sb = new StringBuffer();
for (MyBean bean : beanList) {
sb.append((bean.getName());
sb.append("\n");
}
return sb.toString();
JSP
<c:out value="${myData}"/>
JSP生成HTML。 在HTML中,新线是由被表示<br>
元件,而不是由换行字符。 更有甚者,如果在普通的HTML源看,你会看到很多换行字符的,但它们在默认情况下不是由web浏览器解释的。
除了用HTML <br>
,而不是换行字符元素,
sb.append("<br />");
进行打印,而不<c:out>
像这样${myData}
,你也可以使用HTML <pre>
元素保留空白,
<pre><c:out vaule="${myData}" /></pre>
或只是采用CSS white-space:pre
父元素,酷似HTML <textarea>
元素在内部操作的方式:
<span style="white-space:pre"><c:out value="${myData}"/></span>
(注:一class
是推荐的不止style
,上面只是一个例子开球)
推荐使用后两种方法。 HTML代码不会在Java类属。 它属于在JSP文件。 更有甚者,你或许应该实际使用JSTL <c:forEach>
遍历集合,而不是那整片的Java代码。
<c:forEach items="${beanList}" var="bean">
<c:out value="${bean.name}" /><br />
</c:forEach>