Primefaces来自ArrayList的Datatable filterOptions

时间:2013-11-27 20:40:37

标签: jsf collections primefaces datatable filtering

我想从数据库列中加载Primefaces 4 dataTable filterOptions。 我使用Set接口存储选项的不同值,然后将这些不同的值放在ArrayList中,如上所述。

我不清楚为什么我会得到 java.lang.ArrayStoreException ,因为它们都是整数值。

有人可以帮助我吗?

提前致谢。

摘录托管bean代码:

private ArrayList<Integer> filteredPrefDeps;

public ArrayList<Integer> getFilteredPrefDeps() {
    return loadPrefDeps();
}

public void setFilteredPrefDeps(ArrayList<Integer> filteredPrefDeps) {
    this.filteredPrefDeps = filteredPrefDeps;
}

private ArrayList<Integer> loadPrefDeps() {
        Set<Integer> setList = new HashSet<>();        
        for (Upb id : getItems()) {
            setList.add(Integer.valueOf(id.getPrefDep()));
        }
        ArrayList<Integer> list = new ArrayList<>(setList);  
        return list;
    }

jsf摘录:

<p:column filterBy="#{item.prefDep}" filterOptions="#{upbController.filteredPrefDeps}" filterMatchMode="exact" >

1 个答案:

答案 0 :(得分:6)

查看此异常的文档here

如果使用错误的类型,将会抛出。它应该是SelectItem。

import javax.faces.model.SelectItem;

List<SelectItem> filterLockedOptions = new ArrayList<SelectItem>(Arrays.asList(new SelectItem("value1","label1"),new SelectItem("value2","value2")));