我想显示HashMap
JSF UI 中的键及其关联值。
我怎样才能实现这个目标?我如何迭代HashMap
在 JSF 页面中使用一些迭代器组件,例如<h:datatable>
?
Only <c:forEach>
支持Map
。每次迭代给出一个Map.Entry http://docs.oracle.com/javase/7/docs/api/java/util/Map.Entry.html实例返回(就像在普通的 Java 中一样)for
loop).
<c:forEach items="#{yourBean.map}" var="entry">
<li>Key: #{entry.key}, value: #{entry.value}</li>
</c:forEach>
The <h:dataTable>
(and <ui:repeat>
)仅支持List
(JSF 2.2 将附带Collection
支持)。您可以将所有密钥复制到单独的List
然后迭代它,然后使用迭代的键来获取关联的值[]
in 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
反而。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)