2010-03-30 9 views
31
<c:forEach items="${myParams.items}" var="currentItem" varStatus="stat"> 
    <c:set var="myVar" value="<c:out var="myVar" />" /> 
</c:forEach> 

मैं पाश के अंत में currentItem.myVar के मूल्यों और यह उत्पादन को श्रेणीबद्ध करना चाहते हैं, समस्या मैं ऐसा करने के तरीके को समझ नहीं सकता है ...जेएसटीएल/जेएसपी में लूप के अंदर एक स्ट्रिंग को कैसे जोड़ सकता हूं?

(अधिमानतः जावा का उपयोग नहीं)

उत्तर

47

शायद यह काम करेगा?

<c:forEach items="${myParams.items}" var="currentItem" varStatus="stat"> 
    <c:set var="myVar" value="${stat.first ? '' : myVar} ${currentItem}" /> 
</c:forEach> 
+0

यह ठीक है, पहले मान को छोड़कर शून्य – qodeninja

+0

ठीक है, मैंने यह देखने के लिए एक चेक जोड़ा कि यह लूप के माध्यम से पहली बार है या नहीं। क्या वह काम करता है? – harto

+0

yup perfecto =] ty – qodeninja

-5

JSP टैग का उपयोग करके स्ट्रिंग वैरिएबल परिभाषित

<%! 
String test = new String(); 
%> 

तो

<c:forEach items="${myParams.items}" var="currentItem" varStatus="stat"> 
test+= whaterver_value 
</c:forEach> 
के रूप में अपने पाश में है कि चर का उल्लेख
+2

जावा का उपयोग करना इस तरह से जाने का तरीका नहीं है, मुझे लगता है कि मुझे नए स्ट्रिंग() के लिए जेएसटीएल – qodeninja

+0

लगभग -1 का उपयोग करने की आवश्यकता है। कैसा रहेगा ""? – Thilo

+0

थिलो हाँ, मैं नई स्ट्रिंग() के लिए समझता हूं। मेरी गलती! –

13

आप जेएसटीएल 2.0 का उपयोग कर रहे हैं? आपको सभी चर के चारों ओर <c:out/> डालने की आवश्यकता नहीं है। क्या आपने ऐसा कुछ करने की कोशिश की है?

<c:forEach items="${myParams.items}" var="currentItem" varStatus="stat"> 
    <c:set var="myVar" value="${myVar}${currentItem}" /> 
</c:forEach> 

संपादित: उपरोक्त

+0

यह ठीक है, पहले मान को छोड़कर शून्य =/ – qodeninja

+0

पहला मान शून्य है: बस एक और सी करें: myVar को प्रारंभ करने के लिए लूप के बाहर सेट करें। – Thilo

+0

फिर शायद सेट टैग को एक में लपेटें? <सी: यदि परीक्षण = "$ {खाली नहीं है ITem}" /> ...? –

0

द्वारा पीटा JSTL के join() है, आपने जो खोजा है?

<c:set var="myVar" value="${fn:join(myParams.items, ' ')}" /> 
संबंधित मुद्दे

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