2013-01-25 36 views
6

का उपयोग करते समय नई लाइन दिखाई नहीं देती है मैंने स्ट्रिंग में "\ n" जोड़ा है और एस टैग टेक्स्टरे का उपयोग करते समय, नई लाइन जोड़ दी गई है और डेटा लाइन से लाइन दिखाया गया है। लेकिन जब मैं सी आउट टैग का उपयोग करता हूं, तो डेटा एक पंक्ति में दिखाया जाता है। मैं सी आउट टैग के साथ लाइन से लाइन कैसे दिखा सकता हूं?सी आउट टैग

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 एचटीएमएल पैदा करता है। एचटीएमएल में, <br> तत्व द्वारा नई लाइनों का प्रतिनिधित्व किया जाना चाहिए, न कि लाइनफीड चरित्र द्वारा। और भी, यदि आप औसत HTML स्रोत देखते हैं, तो आपको बहुत सारे लाइनफ़ेड वर्ण दिखाई देंगे, लेकिन डिफ़ॉल्ट रूप से वे वेबब्रोसर द्वारा व्याख्या नहीं किए गए हैं।

अलावा linefeed चरित्र की बजाय HTML <br> तत्व का उपयोग करने से,

sb.append("<br />"); 

और इतने ${myData} तरह <c:out> बिना उसे प्रिंट करके, आप भी एचटीएमएल <pre> तत्व खाली स्थान के संरक्षित करने के लिए उपयोग कर सकते हैं,

<pre><c:out vaule="${myData}" /></pre> 

या केवल मूल तत्व पर सीएसएस white-space:pre लागू करें, बिल्कुल HTML <textarea> तत्व आंतरिक रूप से कर रहा है:

<span style="white-space:pre"><c:out value="${myData}"/></span> 

(ध्यान दें: एक classstyle की तुलना में अधिक सिफारिश की है, ऊपर सिर्फ एक किकऑफ़ उदाहरण है)

बाद के दो दृष्टिकोण सिफारिश की है। एचटीएमएल कोड जावा कक्षाओं में नहीं है। यह जेएसपी फाइलों में है। और भी, आपको वास्तव में जेएसटीएल <c:forEach> का उपयोग जावा कोड के पूरे टुकड़े के बजाय संग्रह पर फिर से करने के लिए करना चाहिए।

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

' 'का उपयोग कर सकते हैं जो अच्छा था। मुझे कुछ खोज बचाया। – mushfek0001