1

编辑:我正在尝试迭代用户选择的值列表,这些值由 PrimeFaces 中的 DualListModel 带来。

这是我正在尝试做的事情:

List<Department> dptsSelected = dptsDual.getTarget();
for (Department d : dptsSelected ) {
//do something
}

dpts双:

DualListModel<Department> dptsDual;

进入 FOR 循环时出现错误。甚至在进入循环之前就抛出异常,它被抛出在 FOR。

java.lang.ClassCastException: java.lang.String cannot be cast to Department

TIA

4

2 回答 2

0

我解决了我的问题。我错误地假设 PF 组件可以将对象从页面中带回来。我假设这是因为当我这样做时 Java 没有抗议:

List<Department> dptsSelected = dptsDual.getTarget();

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

谢谢你们的帮助。

于 2012-04-06T15:59:01.393 回答
0

您正在混合两种不同的东西,DepartmentEnum 和 Department。首先确定您的需求是需要 dptsDual 作为 Department 的 DualListModel 还是 DepartmentEnum 的 DualListModel

现在试试这个方法......

在 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);

提交后, selectedDepartments 将具有用户选择的部门

于 2012-04-06T06:27:42.177 回答