2012-08-09 10 views
5

एक के लिए प्रत्येक लूप के साथ मैं टेबल कोशिकाओं (एक पंक्ति के लिए) बनाना चाहता हूं जबकि प्रत्येक कक्ष में एक फॉर्म का इनपुट फ़ील्ड होता है। तालिका कोशिकाओं की संख्या हमेशा तय की जाती है (12)। यह वास्तव में कोई समस्या नहीं है। हालांकि, यहां चुनौती आती है: प्रत्येक के लिए इनपुट फ़ील्ड में डिफ़ॉल्ट मानों की चर संख्या को भी दर्ज करना चाहिए जिसे मानचित्र (लांग, डबल) से प्राप्त किया जाना है।मानचित्र प्रविष्टि तक पहुंचने के लिए प्रत्येक लूप के लिए जेएसटीएल के इंडेक्स वैरिएबल का उपयोग कैसे करें?

यह मेरा (सरलीकृत) प्रयास है:

<c:forEach var="number" begin="1" end="12" > 
    <td> 
     <input type="text" value="${requestScope.aMapWithData[number]}" /> 
    </td> 
</c:forEach> 

लेकिन इस इनपुट फ़ील्ड में मानचित्र से किसी भी मूल्य नहीं दिखाती है। मुझे लगता है कि समस्या यह है कि "संख्या" प्रकार स्ट्रिंग और लंबी नहीं है। तो मुझे आश्चर्य है कि क्या इस समस्या को स्क्रिप्टलेट का उपयोग किए बिना हल किया जा सकता है।

+1

देखें [यह धागा] (http://stackoverflow.com/questions/924451/jstl-access-a-map-value-by-key)। विशेष रूप से स्वीकृत उत्तर, और [यह एक] (http://stackoverflow.com/a/5474399/1344008) – npe

+0

संकेत के लिए Thx! निहित प्रकार के कलाकार के साथ चाल बहुत अच्छी तरह से काम करती है: मूल्य = "$ {requestScope.aMapWithData [संख्या + 0]}" – mvk

उत्तर

0

प्रयास करें इस

<c:forEach items="${aMapWithData}" var="mapEntry"> 
    <c:set var="mapKey" value="${mapEntry.key}"></c:set> 
    <c:set var="mapValue" value="${mapEntry.value}"></c:set> 
</c:forEach> 
+0

मैं गलत था ^^ यह काम नहीं करता है, क्योंकि मुझे हमेशा 12 कोशिकाओं की आवश्यकता होती है ... – mvk

+0

आपको आवश्यकता है यह निर्दिष्ट करने के लिए कि आपके मानचित्र में संभावित कुंजी क्या हैं। – vikas

+0

संभव नक्शा कुंजी संख्याएं (लंबी) 1 और 12 – mvk

7

क्या नंबर पर आप को दिखाने के लिए करना चाहते हैं? क्या यह प्रत्येक मानचित्र प्रविष्टि की अनुक्रमणिका संख्या है?

<c:forEach items="${aMapWithData}" var="item" varStatus="status"> 
    <td> 
     <c:out value="${status.count}."/> 
     <input type="text" name="${item.key}" value="${item.value}" /> 
    </td> 
</c:forEach> 
+0

के बीच हैं, नहीं, मैं प्रत्येक मानचित्र प्रविष्टि का वास्तविक मूल्य दिखाना चाहता हूं। इसके अलावा कोशिकाओं की संख्या तय की जानी चाहिए (12)। आपके समाधान में कोशिकाओं की संख्या मानचित्र प्रविष्टियों की संख्या पर निर्भर करती है। – mvk

+0

बस 'शुरू करें' टैग में 'start' और' end' विशेषताएँ जोड़ें। ' 'और आपको वांछित व्यवहार मिल जाएगा। – kapand

+0

दुर्भाग्यवश "प्रारंभ" और "अंत" जोड़ने से "आइटम" विशेषता के साथ मिलकर मदद नहीं मिलती है, वे पुनरावृत्तियों की (निश्चित) संख्या निर्दिष्ट नहीं करते हैं, बल्कि यह प्रतिबंधित करते हैं कि मानचित्र के कौन से तत्व पुनरावृत्तियों में शामिल हैं। – mvk

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