Primefaces来自ArrayList的Datatable filterOptions

jMa*_*cel 1 collections datatable jsf filtering primefaces

我想加载从数据库列中读取的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;
    }
Run Code Online (Sandbox Code Playgroud)

jsf摘录:

<p:column filterBy="#{item.prefDep}" filterOptions="#{upbController.filteredPrefDeps}" filterMatchMode="exact" >
Run Code Online (Sandbox Code Playgroud)

nik*_*ion 6

这里查看此异常的文档!

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

import javax.faces.model.SelectItem;

List<SelectItem> filterLockedOptions = new ArrayList<SelectItem>(Arrays.asList(new SelectItem("value1","label1"),new SelectItem("value2","value2")));
Run Code Online (Sandbox Code Playgroud)