केवल <c:forEach>
Map
का समर्थन करता है। प्रत्येक पुनरावृत्ति Map.Entry
उदाहरण वापस देता है (जैसे सामान्य जावा for
पाश में)।
<c:forEach items="#{yourBean.map}" var="entry">
<li>Key: #{entry.key}, value: #{entry.value}</li>
</c:forEach>
<h:dataTable>
(और <ui:repeat>
) केवल List
का समर्थन करता है (JSF 2.2 Collection
समर्थन के साथ आ जाएगा)। आप सभी कुंजियों को एक अलग List
में प्रतिलिपि बना सकते हैं और फिर इसके बजाय इसे फिर से चालू कर सकते हैं और फिर ईएल में []
का उपयोग करके संबंधित मान प्राप्त करने के लिए पुनरावृत्त कुंजी का उपयोग कर सकते हैं।
private Map<String, String> map;
private List<String> keyList;
public void someMethodWhereMapIsCreated() {
map = createItSomeHow();
keyList = new ArrayList<String>(map.keySet());
}
public Map<String, String> getMap(){
return map;
}
public List<String> getKeyList(){
return keyList;
}
<h:dataTable value="#{yourBean.keyList}" var="key">
<h:column>
Key: #{key}
</h:column>
<h:column>
Value: #{yourBean.map[key]}
</h:column>
</h:dataTable>
ध्यान दिया जाना चाहिए कि एक HashMap
प्रकृति अव्यवस्थित कर रहा है। यदि आप List
के साथ सम्मिलन आदेश को बनाए रखना चाहते हैं, तो इसके बजाय LinkedHashMap
का उपयोग करें।
स्रोत
2011-06-03 10:13:33
धन्यवाद यह ठीक काम करता है ... – Sweety
आपका स्वागत है :) –
बलुससी द्वारा संशोधन मेरे लिए महत्वपूर्ण थे +1 BalusC – user1156544