Java PrimeFaces - DualListModel iteration



>编辑:我正在尝试迭代用户选择的值列表,由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();

所以..也许我应该通过使用转换器来解决这个问题。

谢谢你们的帮助。

最新更新