我在字符串后附加了“ \ n”,并在使用s标签textarea时添加了换行符,并逐行显示数据。但是,当我使用c out标签时,数据显示在一行中。如何使用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浏览器根本不会解释它们。
<br>
除了使用HTML <br>元素代替换行符之外,
sb.append("<br />");
然后<c:out>不像这样打印它${myData},您还可以使用HTML <pre>元素保留空白,
<c:out>
${myData}
<pre>
<pre><c:out vaule="${myData}" /></pre>
或仅将CSS white-space:pre应用于父元素,就像HTML <textarea>元素在内部所做的一样:
white-space:pre
<textarea>
<span style="white-space:pre"><c:out value="${myData}"/></span>
(注意:class比推荐使用a style,以上只是一个启动示例)
class
style
建议使用后两种方法。HTML代码不属于Java类。它属于JSP文件。甚至更多,您可能实际上应该使用JSTL <c:forEach>而不是整个Java代码遍历集合。
<c:forEach>
<c:forEach items="${beanList}" var="bean"> <c:out value="${bean.name}" /><br /> </c:forEach>