2012-04-06 68 views
1

编辑: 我试着迭代由PrimeFaces的DualListModel带来的用户选择的值列表。Java 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 

TIA

+0

什么是for循环写入的代码?发布更多代码。 – 2012-04-06 06:57:42

+0

嗨,我不认为这是问题所在。我使用dptsSelected从我的数据库中提取它们。但是这个异常在进入循环之前就已经抛出了,它被丢在了FOR – ercliou 2012-04-06 15:42:17

回答

0

你是混合两种不同的东西,DepartmentEnum和部门。首先确定你的要求是否需要dptsDual作为DepartmentEnum

系或DualListModel的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将拥有由用户选择的部门

+0

对不起。不知道你是否看到我的编辑.. 我做了更多的测试,发现问题不大,关于枚举类型,它是关于迭代selectedDepartment的。它显示字符串铸造异常 – ercliou 2012-04-06 15:38:51

+0

我的代码几乎与您在那里完成的一样,问题在迭代selectedDepartment – ercliou 2012-04-06 15:44:16

0

我解决了我的问题。 我错误地认为PF组件可能会从页面中返回对象。我以为这是因为Java的时候我也没有抗议:

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

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

感谢您的帮助球员。

+0

您是如何解决类转换异常的? – 2016-12-07 05:34:04