2013-03-27 13 views
6

मैं डेटा नामक एक विशेषता उत्तीर्ण कर रहा हूं जो मेरे जेएसपी में योग्य है जो तारों की सूचियों की एक सूची है।सी: प्रत्येक लूप प्रिंटिंग स्क्वायर ब्रैकेट डिलीमीटर

[[Header1, Header2, Header3], [A, B, C], [1, 2, 3]] 

मैं इस तरह सीधे एक आइटम मुद्रित कर सकते हैं:

${dataTable[1][2]} 

जो आउटपुट: सी

JSP अगर मैं उत्पादन विशेषता, $ {DataTable} का उपयोग में यह यह कच्चे प्रारूप में बाहर प्रिंट

तब जब मैंने नेस्टेड सी लिखा: प्रत्येक लूप को तालिका मुद्रित करने के लिए, प्रत्येक पंक्ति के अंत में वर्ग ब्रैकेट शामिल हैं, लेकिन पूरे ऑब्जेक्ट पर स्क्वायर ब्रैकेट नहीं हैं।

उस के लिए मेरे कोड है:

<c:forEach var="row" items="${dataTable}"> 
    <c:forEach var="item" items="${row} "> 
     <span>${item}</span> 
    </c:forEach> 
    <br /> 
</c:forEach> 

कौन सा में परिणाम:

 <span>[Header1</span> 
     <span> Header2</span> 
     <span> Header3] </span> 
    <br /> 
     <span>[A</span> 
     <span> B</span> 
     <span> C] </span> 
    <br /> 
     <span>[1</span> 
     <span> 2</span> 
     <span> 3] </span> 
    <br /> 

है यही कारण है कि लगभग क्या मैं के लिए, मैं सिर्फ शुरुआत और अंत में वर्ग कोष्ठक नहीं करना चाहती जा रहा हूँ हर पंक्ति का।

मुझे क्या याद आ रहा है जो उन स्क्वायर ब्रैकेट को फिर से दिखने के दौरान दिखा रहा है, लेकिन जब मैं सीधे किसी आइटम तक नहीं पहुंचता?

धन्यवाद!

+0

क्या यह आपके पृष्ठ से सटीक कोड है? – clav

+0

हां, मैं बस एक साधारण जेनेरिक टेबल का उपयोग कर रहा हूं जब तक कि मैं इसे सही काम नहीं करता। –

उत्तर

3

कि "toStringed", इस लाइन <c:forEach var="item" items="${row} "> पर मिलता <c:forEach var="item" items="${row}"> लिए इसे बदलने के लिए सूची पैदा ${row} के बाद एक अतिरिक्त स्थान नहीं है और आप आगे बढ़ने के हो जाएगा।

+0

दरअसल, यह भी ध्यान रखें कि अतिरिक्त स्थान आउटपुट में ']' के बाद समाप्त हो गया है। – BalusC

+0

वाह, अच्छा पकड़ो। – Alex

+0

वाह। धन्यवाद! –

0

आपने कहा कि dataTable तारों की एक सूची है - इसका मतलब है कि आंतरिक forEach टैग एक स्ट्रिंग पर फिर से चल रहा है। अपाचे जेएसटीएल कार्यान्वयन (1.2 स्रोत कोड here) में, एक स्ट्रिंग पर पुनरावृत्ति इसे अल्पविराम से अलग टोकन में पार्स करता है। तो स्ट्रिंग "[A, B, C]" सूची ["[A", " B", " C]"' में पार्स हो जाती है।

अपना वांछित व्यवहार प्राप्त करने के लिए, नेस्टेड सूचियों का उपयोग करके dataTable को परिभाषित करने का प्रयास करें, उदा। ["[A, B, C]", "[1, 2, 3]"] के बजाय।

+0

डेटाटेबल स्ट्रिंग्स की सूचियों की एक सूची है, इसे एट्रिब्यूट में डालने से पहले इसे ArrayList > –

+0

के रूप में प्रारंभ किया गया था, फिर क्या आप डेटा को प्रारंभ करने वाले कोड को पोस्ट कर सकते हैं? – Alex

संबंधित मुद्दे