我在字符串中附加了"\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();
Run Code Online (Sandbox Code Playgroud)
JSP
<c:out value="${myData}"/>
Run Code Online (Sandbox Code Playgroud)
Bal*_*usC 16
JSP生成HTML.在HTML中,新行由<br>元素表示,而不是由换行符表示.更重要的是,如果你查看普通的HTML源代码,你会看到很多换行符,但默认情况下它们根本不被webbrowser解释.
除了使用HTML <br>元素而不是换行符,
sb.append("<br />");
Run Code Online (Sandbox Code Playgroud)
并且在没有<c:out>这样的情况下打印它${myData},你也可以使用HTML <pre>元素来保留空白,
<pre><c:out vaule="${myData}" /></pre>
Run Code Online (Sandbox Code Playgroud)
或者只是white-space:pre在父元素上应用CSS ,就像HTML <textarea>元素在内部做的那样:
<span style="white-space:pre"><c:out value="${myData}"/></span>
Run Code Online (Sandbox Code Playgroud)
(注意:a class比推荐更多style,上面只是一个启动示例)
建议采用后两种方法.HTML代码不属于Java类.它属于JSP文件.更重要的是,您可能实际上应该使用JSTL <c:forEach>来迭代集合而不是整个Java代码.
<c:forEach items="${beanList}" var="bean">
<c:out value="${bean.name}" /><br />
</c:forEach>
Run Code Online (Sandbox Code Playgroud)