我正在尝试在tabView中显示dataTable。
目前我的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()的结果。
我的Volume-Entity有一个字段“VolumeNumber”,并且每个标签都会调用控制器中的方法。
我哪里出错或者是错误表面的错误? (我使用4.0)
问候 麒麟
答案 0 :(得分:0)
所以,最后我发现了我的错误。
在我的JPA-Query中,我将整个列表作为List返回。不知怎的,它滑过我的方法中的所有赋值(参见上面的&#39; findVolumesForSeries&#39;)并且只是在用户界面中抛出错误。
这是我见过的最奇怪的错误,但对于发现此问题的其他人来说: 检查你的方法是否都返回正确的数据类型 - 不知何故,Java在这里混乱。