我正在尝试使用Map集合中的值(无论什么类型,HashMap,TreeMap),填充ICEfaces数据表组件并显示对象属性。我能找到的唯一例子就是将Map的值导出到List集合中,然后使用它来填充数据表。但是,我觉得这非常浪费,现在我不得不维护两个精确值的集合。
数据表组件是否支持迭代Map的值?如果没有,是否可能有更好的方法来解决前面提到的解决方案?
对于好奇,我想使用Map集合进行快速删除,它最自然地适合我的数据(基于密钥)。
答案 0 :(得分:1)
值得一试:
我找到了以下解决方案:JSF: Using Map data in Datatable ,URL中的示例引用了richfaces,但在我看来,您需要做的就是使用IceFaces标签,如果您将使用LinkedHashMap,它可能会帮助您完成订单...
如果网址变坏,请输入以下代码:
Map<String,String> myMap;
public List<String> getMapKeys(){
List<String> ret = new ArrayList<String>();
for (String s : myMap.keySet())
ret.add(s);
return ret;
}
在JSF页面上:
<rich:extendedDataTable value="#{myBean.mapKeys}" var="item"
id="datatable">
<rich:column width="190px" sortable="false" label="Map entries"
id="labelColumn">
<f:facet name="header">Map entries</f:facet>
<h:outputText value="#{myBean.myMap[item]}" />
</rich:column>
</rich:extendedDataTable>