2014-10-28 50 views
0

我想顯示一個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)

問候 麒麟

回答

0

所以,最後我發現我的錯誤。

在我的JPA查詢中,我將整個列表作爲列表返回。不知何故,它滑過了我的方法中的所有賦值(參見上面的'findVolumesForSeries'),並將錯誤拋出到用戶界面中。

這是我見過的最奇怪的錯誤,但是對於其他所有發現此問題的人: 檢查您的方法是否都返回正確的數據類型 - 不知何故Java會在這裏混淆。