【问题标题】:p:datatable with selectionMode as multiplep:datatable 与 selectionMode 为多个
【发布时间】:2012-08-06 03:12:21
【问题描述】:

根据 primefaces 文档,选择应该是一个数组。在下面的代码中 bean.selectedUsers 被定义为“HasUsersVO[] selectedUsers”,但数据表的值是 List。当我在填充数据表后单击“确定”按钮时,我收到了粘贴在底部的转换错误。

                <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:]

【问题讨论】:

  • 你试过用列表替换数组吗?
  • @NikitaBeloglazov 是的,然后我得到一个不同的错误,因为它不是数组。根据文档,我需要提供数组以供选择。
  • 你尝试调试过primefaces吗?

标签: jsf jsf-2 primefaces


【解决方案1】:

异常消息和堆栈跟踪表明您在#{bean.peopleVOList} 后面提供了一个PeopleVO[] 数组。这个不对。必须是Collection,最好是ArrayList&lt;PeopleVO&gt;

private List<PeopleVO> peopleVOList;

#{bean.selectedUsers} 必须确实是PeopleVO[]。那部分很好。

【讨论】:

    猜你喜欢
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 2012-04-10
    • 1970-01-01
    • 2022-01-08
    • 2014-03-19
    • 1970-01-01
    相关资源
    最近更新 更多