java.lang.ClassCastException: java.util.Vector 无法转换为 java.util.ArrayList
java.lang.ClassCastException: java.util.Vector cannot be cast to java.util.ArrayList
我正在学习 JavaEE,正在寻求帮助。我正在尝试从 Derby DB table 获取所有记录以显示在 xhtml 页面(数据表)上。我收到此错误 "java.lang.ClassCastException: java.util.Vector cannot be cast to java.util.ArrayList"。
- 谁能解释错误以及我需要如何修复它?
- 如何触发数据 table 仅在单击 "Print" 按钮时显示?
提前致谢
我的命名查询:
NamedQueries({
@NamedQuery(name="getAllItemActivities", query="select c from LibraryItemActivity c")
})
我的 bean 管理器:
private ArrayList activities;
public ArrayList getActivities() {
return control.getActivites();
}
我的控制bean:
public ArrayList getActivites() {
ArrayList<LibraryItemActivity> temp = (ArrayList<LibraryItemActivity>) em.createNamedQuery("getAllItemActivities").getResultList();
return temp;
}
我的html数据table:
<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>
javax.persistence.Query.getResultList() returns a java.util.List,不是 ArrayList。
将您的 ArrayList 声明更改为 java.util.List。
我正在学习 JavaEE,正在寻求帮助。我正在尝试从 Derby DB table 获取所有记录以显示在 xhtml 页面(数据表)上。我收到此错误 "java.lang.ClassCastException: java.util.Vector cannot be cast to java.util.ArrayList"。
- 谁能解释错误以及我需要如何修复它?
- 如何触发数据 table 仅在单击 "Print" 按钮时显示? 提前致谢
我的命名查询:
NamedQueries({ @NamedQuery(name="getAllItemActivities", query="select c from LibraryItemActivity c") })
我的 bean 管理器:
private ArrayList activities;
public ArrayList getActivities() {
return control.getActivites();
}
我的控制bean:
public ArrayList getActivites() {
ArrayList<LibraryItemActivity> temp = (ArrayList<LibraryItemActivity>) em.createNamedQuery("getAllItemActivities").getResultList(); return temp;
}
我的html数据table:
<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>
javax.persistence.Query.getResultList() returns a java.util.List,不是 ArrayList。
将您的 ArrayList 声明更改为 java.util.List。