使用C OUT标记时,新的生产线不会出现(new line doesn't appear w

2019-08-08 05:12发布

我所附“\ 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}"/>

Answer 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是推荐的不止style ,上面只是一个例子开球)

推荐使用后两种方法。 HTML代码不会在Java类属。 它属于在JSP文件。 更有甚者,你或许应该实际使用JSTL <c:forEach>遍历集合,而不是那整片的Java代码。

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


文章来源: new line doesn't appear when using c out tag
标签: html jsp jstl