我正在学习JavaEE,并寻求一些帮助。我正试图从DerbyDB表中获取所有记录,以显示在xhtml页面(dataTable)上。我收到这个错误"java.lang.ClassCastException:java.util.Vector无法转换为java.util.ArrayList"。
- 有人能解释一下这个错误以及我需要如何修复它吗
- 如何触发数据表仅在单击"打印"按钮时显示?提前感谢
我的命名查询:
命名查询({@NamedQuery(name="getAllItemActivities",query="从LibraryItemActivity c中选择c")})
我的豆经理:
私人ArrayList活动;
public ArrayList getActivities(){
return control.getActivites();
}
我的控制豆:
public 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>
javax.persistence.Query.getResultList()返回java.util.List,而不是ArrayList。
将ArrayList声明更改为java.util.List.