我想从数据库列中加载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" >
答案 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")));