>编辑:我正在尝试迭代用户选择的值列表,由PrimeFaces的DualListModel带来。
这是我正在尝试做的:
List<Department> dptsSelected = dptsDual.getTarget();
for (Department d : dptsSelected ) {
//do something
}
dptsDual:
DualListModel<Department> dptsDual;
进入 FOR 循环时出现错误。异常甚至在进入循环之前就被抛出,它会在 FOR 上抛出。
java.lang.ClassCastException: java.lang.String cannot be cast to Department
蒂亚
你混合了两个不同的东西,DepartmentEnum 和 Department。首先确定您的需求是否需要 dptsDual 作为部门的双列表模型或部门枚举的双列表模型
现在试试这种方式...
在 xhtml 中:
<p:pickList value="#{myBean.myDepartment}" ....>
在豆子里:
List<Department> selectedDepartments = new ArrayList<Department>();
List<Department> availableDepartments = getAvailableDepartments();
private DualListModel<Department> myDepartment;
myDepartment = new DualListModel<Department>(availableDepartments, selectedDepartments);
提交后,选定的部门将拥有用户选择的部门
我解决了我的问题。我错误地认为 PF 组件可以将对象从页面带回来。我之所以这样假设,是因为当我这样做时,Java并没有抗议:
List<Department> dptsSelected = dptsDual.getTarget();
所以..也许我应该通过使用转换器来解决这个问题。
谢谢你们的帮助。