小编典典

使用cout标签时不会出现新行

jsp

我在字符串后附加了“ \ 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}"/>

阅读 257

收藏
2020-06-08

共1个答案

小编典典

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比推荐使用a style,以上只是一个启动示例)

建议使用后两种方法。HTML代码不属于Java类。它属于JSP文件。甚至更多,您可能实际上应该使用JSTL
<c:forEach>而不是整个Java代码遍历集合。

<c:forEach items="${beanList}" var="bean">
    <c:out value="${bean.name}" /><br />
</c:forEach>
2020-06-08