2010-01-27 10 views
34

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

यदि कोई मुझे जेएसपी में जावा सूची को फिर से चालू करने का एक सरल उदाहरण दे सकता है तो मैं बड़े पैमाने पर सराहना करता हूं। मार्क

उत्तर

86

मार्क, यह पहले से ही आपके previous topic में उत्तर दिया गया है। करता है मूलतः एक ही रूप में "सामान्य जावा" में निम्नलिखित के रूप में

मान लीजिए ${list} एक List<Object> अंक, उसके बाद निम्न

<c:forEach items="${list}" var="item"> 
    ${item}<br> 
</c:forEach> 

:: लेकिन ठीक है, यहाँ इसे फिर से है

for (Object item : list) { 
    System.out.println(item); 
} 

हैं आपके पास List<Map<K, V>> है, तो निम्नलिखित

<c:forEach items="${list}" var="map"> 
    <c:forEach items="${map}" var="entry"> 
     ${entry.key}<br> 
     ${entry.value}<br> 
    </c:forEach> 
</c:forEach> 

मूल रूप से "के रूप में सामान्य जावा" में निम्नलिखित के रूप में ही कार्य करता है:

for (Map<K, V> map : list) { 
    for (Entry<K, V> entry : map.entrySet()) { 
     System.out.println(entry.getKey()); 
     System.out.println(entry.getValue()); 
    } 
} 

key और value यहाँ हैं विशेष नहीं तरीकों या तो। वे वास्तव मेंMap.Entry ऑब्जेक्ट के गेटर विधियां हैं (API दस्तावेज़ देखने के लिए नीले Map.Entry लिंक पर क्लिक करें)। ईएल (अभिव्यक्ति भाषा) में आप "संपत्ति नाम" (get उपसर्ग के बिना गेटर विधि का नाम) का उपयोग कर गेटर विधियों तक पहुंचने के लिए . डॉट ऑपरेटर का उपयोग कर सकते हैं, बस जवाबीन विनिर्देश के अनुसार।

उस ने कहा, आपको वास्तव में प्रश्न के शोर को जोड़ते हुए अपने पिछले विषय में "उत्तर" को साफ़ करने की आवश्यकता है। मैंने आपके "उत्तरों" में पोस्ट की गई टिप्पणियां भी पढ़ें।

+0

मैं उन्हें साफ करने के लिए अच्छा लगेगा, लेकिन वहाँ एक हटाएँ बटन और ग्रेप संपादन पृष्ठ के पूर्ण संदर्भ लिंक पर 'नष्ट' कुछ भी नहीं देता नहीं है। कृपया मुझे बताएं कि मैं बम एम्स को कैसे हटा सकता हूं। – volvox

+0

शायद यह आपकी कम प्रतिष्ठा के कारण है कि आप इसे हटाने में असमर्थ हैं। सबसे अच्छा आप अभी क्या कर सकते हैं * वास्तविक * उत्तरों को ऊपर उठाना है (उत्तर के बाईं ओर शीर्ष त्रिकोण को दबाएं) और अपने उत्तरों को छोड़ दें, ताकि वास्तविक उत्तरों सूची में उच्चतर व्यवस्थित हो जाएं। स्टैक ओवरफ्लो के बारे में और जानने के लिए, शीर्ष बार पर "के बारे में" और "faq" लिंक पढ़ें :) – BalusC

+0

यह मेरे कम प्रतिनिधि के कारण है। लेकिन मुझे लगता है कि तथ्य मैं अपने उत्तरों को हटा नहीं सकता थोड़ा सा लंगड़ा है। – volvox

0

कोशिश इस

<c:forEach items="${list}" var="map"> 
    <tr> 
     <c:forEach items="${map}" var="entry"> 

      <td>${entry.value}</td> 

     </c:forEach> 
    </tr> 
</c:forEach>