11
我想在JSF UI中顯示HashMap
鍵及其關聯的值。顯示JSF頁面中的HashMap條目的鍵值和值
我該如何做到這一點?我如何使用迭代器組件如<h:datatable>
在JSF頁面中迭代HashMap
?
我想在JSF UI中顯示HashMap
鍵及其關聯的值。顯示JSF頁面中的HashMap條目的鍵值和值
我該如何做到這一點?我如何使用迭代器組件如<h:datatable>
在JSF頁面中迭代HashMap
?
只有<c:forEach>
支持Map
。每次迭代都會返回一個Map.Entry
實例(就像在普通的Java 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
中,然後對其進行迭代,然後使用迭代鍵在EL中使用[]
獲取關聯值。
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
。
感謝它工作正常... – Sweety 2011-06-03 11:20:01
歡迎:) – 2011-06-03 11:33:36
由BalusC的修正是我的關鍵+1 BalusC – user1156544 2016-04-19 09:59:42