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会在这里混淆。