tabView使用错误的数据类型的数据表
问题描述:
我想显示一个tabView内的数据表。tabView使用错误的数据类型的数据表
目前我在我的XHTML代码看起来如下:
<p:tabView id="tabView" value="#{volumeController.shownSeries}" var="serie" cache="false">
<p:tab title="#{serie.name}">
<p:dataTable value="#{volumeController.findVolumesForSeries(serie.id)}" var="volume">
<p:column>
<h:outputText value="#{volume.volumeNumber}"/>
</p:column>
</p:dataTable>
</p:tab>
</p:tabView>
所以,现在我的问题是,我得到以下错误:
javax.el.PropertyNotFoundException: /Volume/list.xhtml @22,89 value="#{volume.volumeNumber}": The class 'at.kirin.entity.Series' does not have the property 'volumeNumber'.
的问题是,这是我在我的volumeController中的方法:
public List<Volume> findVolumesForSeries(long id) {
List<Volume> v = volumeFacade.getVolumesForSeries(id);
return v;
}
因此,我返回我的控制器中的卷列表,但Glassfish将其解释为系列清单。 我试图用.toString()显示值,但它只显示我的系列的.toString()的结果。
我的卷实体有一个字段“VolumeNumber”,并在每个选项卡调用控制器中的方法。
我在哪里出错或是在primefaces中的错误? (我用4.0)
问候 麒麟
答
所以,最后我发现我的错误。
在我的JPA查询中,我将整个列表作为列表返回。不知何故,它滑过了我的方法中的所有赋值(参见上面的'findVolumesForSeries'),并将错误抛出到用户界面中。
这是我见过的最奇怪的错误,但是对于其他所有发现此问题的人: 检查您的方法是否都返回正确的数据类型 - 不知何故Java会在这里混淆。