/ / JSF पृष्ठ में हैशपॉप प्रविष्टियों की प्रदर्शन कुंजी और मूल्य - jsf, हैशमैप

जेएसएफ पेज में हैश मैप प्रविष्टियों की कुंजी और मान प्रदर्शित करें - जेएसएफ, हैशपैप

मैं प्रदर्शित करना चाहूंगा HashMap JSF UI में कुंजियाँ और उसका संबद्ध मान।

इसे कैसे प्राप्त किया जा सकता है? मैं इस पर पुनरावृति कैसे कर सकता हूं? HashMap जेएसएफ पृष्ठ में जैसे कुछ पुनरावृत्त घटक का उपयोग कर <h:datatable>?

उत्तर:

उत्तर № 1 के लिए 33

केवल <c:forEach> का समर्थन करता है Map। प्रत्येक पुनरावृत्ति एक देता है Map.Entry उदाहरण वापस (सामान्य जावा की तरह) for पाश)।

<c:forEach items="#{yourBean.map}" var="entry">
<li>Key: #{entry.key}, value: #{entry.value}</li>
</c:forEach>

The <h:dataTable> (तथा <ui:repeat>) केवल समर्थन करता है List (JSF २.२ के साथ आ जाएगा 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 बजाय।