如何将Map Collections与ICEfaces数据表组件一起使用

时间:2012-01-15 02:25:53

标签: java jsf xhtml icefaces

我正在尝试使用Map集合中的值(无论什么类型,HashMap,TreeMap),填充ICEfaces数据表组件并显示对象属性。我能找到的唯一例子就是将Map的值导出到List集合中,然后使用它来填充数据表。但是,我觉得这非常浪费,现在我不得不维护两个精确值的集合。

数据表组件是否支持迭代Map的值?如果没有,是否可能有更好的方法来解决前面提到的解决方案?

对于好奇,我想使用Map集合进行快速删除,它最自然地适合我的数据(基于密钥)。

1 个答案:

答案 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>