【问题标题】:java.lang.ClassCastException: java.util.Vector cannot be cast to java.util.ArrayListjava.lang.ClassCastException:java.util.Vector 不能转换为 java.util.ArrayList
【发布时间】:2016-07-28 20:11:57
【问题描述】:

我正在学习 JavaEE,正在寻求帮助。我正在尝试从 Derby DB 表中获取所有记录以显示在 xhtml 页面(dataTable)上。我收到此错误“java.lang.ClassCastException:java.util.Vector 无法转换为 java.util.ArrayList”。

  1. 谁能解释这个错误以及我需要如何修复它?
  2. 如何触发仅在单击“打印”按钮时才显示数据表? 提前致谢

我的命名查询:

命名查询({ @NamedQuery(name="getAllItemActivities", query="select c from LibraryItemActivity c") })

我的 bean 经理:

私有 ArrayList 活动;

公共 ArrayList getActivities() {

  return control.getActivites();

}

我的控制 bean:

公共 ArrayList getActivites() {

  ArrayList<LibraryItemActivity> temp = (ArrayList<LibraryItemActivity>) em.createNamedQuery("getAllItemActivities").getResultList();

  return temp;

}

我的html数据表:

<h:form>
    <h:commandButton value = "Print"></h:commandButton>
    <h:dataTable value = "#{libraryBeanManager.activities}" var = "a">
        <h:column>
            <f:facet name="header">Book Title:</f:facet>
            #{a.libraryitemtitle}
        </h:column>
        <h:column>
            <f:facet name="header">Author:</f:facet>
            #{a.patron}
        </h:column>
        <h:column>
            <f:facet name="header">Publisher:</f:facet>
            #{a.activitytype}
        </h:column>
    </h:dataTable>  
</h:form>

【问题讨论】:

    标签: html jakarta-ee arraylist datatable javabeans


    【解决方案1】:

    javax.persistence.Query.getResultList() 返回 java.util.List,而不是 ArrayList。

    将您的 ArrayList 声明更改为 java.util.List。

    【讨论】:

      猜你喜欢
      • 2020-12-20
      • 2023-03-29
      • 2013-07-11
      • 2018-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-03
      • 2013-03-24
      相关资源
      最近更新 更多