2013-01-25 41 views
6

我在字符串後附加了「\ n」,並且在使用s標籤textarea時,新行被追加,數據逐行顯示。但是當我使用c標籤時,數據顯示在一行中。如何使用c out標籤逐行顯示?使用c輸出標籤時不會出現新行

StringBuffer sb = new StringBuffer(); 
    for (MyBean bean : beanList) { 

       sb.append((bean.getName()); 
       sb.append("\n"); 
      } 
      return sb.toString(); 

JSP

<c:out value="${myData}"/> 
+0

您是否看過瀏覽器中的頁面源代碼?您可能必須使用
,以便瀏覽器在此處執行您想要的操作。或者,您可以使用

rickz

回答

16

JSP產生HTML。在HTML中,新行將由<br>元素表示,而不是由換行符表示。更重要的是,如果您查看普通的HTML源代碼,則會看到很多換行符,但默認情況下,它們根本不會被webbrowser解析。

除了用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> 
+0

''這很好。爲我保存了一些搜索。 – mushfek0001

相關問題