2012-08-06 71 views
0

根據primefaces文檔,選擇應該是一個數組。在下面的代碼中,bean.selectedUsers定義爲「HasUsersVO [] selectedUsers」,但datatable的值是List。當我在數據表被填充後點擊確定按鈕時,我會在底部粘貼錯誤。p:datatable,其中selectionMode爲多個

   <p:dataTable id="userListTable" value="#{bean.peopleVOList}" 
        var="user" rowClasses="odd even" selection="#{bean.selectedUsers}" rowKey="#{user.userGuid}" 
        <p:column selectionMode="multiple" style="width:18px"> 
        </p:column> 
..... 
..... 
</p:dataTable> 

錯誤

22:59:16,962 INFO [class com.zreflect.emyed.managedbean.circle.CircleController] (http--127.0.0.1-8080-3) *******************Outside getUsersList******************** 
22:59:38,943 WARNING [javax.enterprise.resource.webcontainer.jsf.lifecycle] (http--127.0.0.1-8080-3) [Lcom.user.PeopleVO; cannot be cast to java.util.Collection: java.lang.ClassCastException: [Lcom.user.PeopleVO; cannot be cast to java.util.Collection 
    at org.primefaces.component.datatable.DataTable.getRowData(DataTable.java:835) [primefaces-3.3.1.jar:] 
    at org.primefaces.component.datatable.DataHelper.decodeMultipleSelection(DataHelper.java:262) [primefaces-3.3.1.jar:] 
    at org.primefaces.component.datatable.DataHelper.decodeSelection(DataHelper.java:240) [primefaces-3.3.1.jar:] 
    at org.primefaces.component.datatable.DataTableRenderer.decode(DataTableRenderer.java:72) [primefaces-3.3.1.jar:] 
+0

你是否嘗試用列表替換數組進行選擇? – 2012-08-06 05:30:56

+0

@NikitaBeloglazov是的,然後我得到一個不同的錯誤,因爲它不是數組。根據我需要給出數組進行選擇的文檔。 – 2012-08-06 05:51:23

+0

您是否嘗試調試primefaces? – 2012-08-06 07:42:36

回答

3

異常消息和堆棧跟蹤表明您已經提供的背後#{bean.peopleVOList}一個PeopleVO[]陣列。這個不對。它必須是Collection,最好是ArrayList<PeopleVO>

private List<PeopleVO> peopleVOList; 

#{bean.selectedUsers}的確應該是一個PeopleVO[]。那部分很好。

+0

你是對的。我改爲列表,現在正在工作。 – 2012-08-06 23:38:56

相關問題