我试图在一个dataTable中显示一个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“,控制器中的方法将为每个选项卡调用。
我在哪里出了错,还是它在原始面孔上是个错误?(我使用4.0)
问候麒麟
发布于 2014-10-30 09:53:38
所以,我终于发现了我的错误。
在我的JPA查询中,我将整个列表作为一个列表返回。不知怎么的,它通过了我的方法中的所有作业(参见上面的'findVolumesForSeries'),并将错误抛到用户界面中。
这是我所见过的最奇怪的错误,但对于发现这个问题的其他人来说:检查您的方法是否都返回正确的数据类型-- Java在这里搞砸了。
https://stackoverflow.com/questions/26603802
复制相似问题