2015-09-03 46 views
0

我有2個實現相同接口(IBean)的Bean(BeanA,BeanB)。Primefaces Datatable無法顯示列表的值<interfaces>

我想要做的是顯示進入<p:datatable> IBean列表(List<IBean>)。

這裏是樣本XHTML:

<p:dataTable 
id="table" 

value="#{modelBeanMB.myIBeanList}" 
var="row" 
scrollable="true" 
emptyMessage="#{msg.emptyDataTable}" 
scrollHeight="350" 
> 
..... 
</p:dataTable> 

我的MB就像是:

protected List<IBean> myIBeanList; 

public List<IBean> getMyIBeanList() { 
    return myIbeanList; 
} 
    public void setMyIBeanList(List<IBean> myIbeanList) { 
    this.myIbeanList= myIbeanList; 
} 

奇怪thig的是,該表顯示列表中的所有行,但不是單一的元素值。像這樣:

enter image description here

,你可以看到表已經everithing(列和行),但不即使BeanA和BeanB填充數據。

預先感謝您。

回答

0

對不起,我感到很慚愧。

的問題是這樣的: VAR =「行」 我不知道,我使用的是不同的名稱爲<p:columns>標籤,而不是primefaces既不JSF告訴我,我是用不同的名字。

這個故事的寓意是:經常檢查您正在使用相同的屬性名在此

<p:dataTable 
id="table" 
value="#{modelBeanMB.myIBeanList}" 
***var="row"*** 
scrollable="true" 
emptyMessage="#{msg.emptyDataTable}" 
scrollHeight="350" 
> 

這裏

<p:column header=""> 
     **#{row.attribute}** 
    </p:column> 

因爲JSF和primefaces不會告訴你兩倍你做錯了:)

最好的問候

+1

這就是爲什麼你應該**總是**發佈mcve ...不要留下相關的東西了! (但不要在這兩者中留下不相關的東西) – Kukeltje

+0

是的,你是對的,對不起:) – BohBah

+0

這個標記爲已接受的答案已經 – Fritz

-1

它normal.Because你的價值{} modelBeanMB.myIBeanList,它是empty.You應填寫方法。

+0

我沒有寫出這個部分,因爲我沒有填寫這個列表,因爲它沒用,而且在空列表中primefaces沒有繪製任何行。另外,如果列表爲空,則存在寫入指定消息的屬性「emptyMessage」。 – BohBah

+0

好了解。如果你寫所有的方法,也許我可以幫助你.Getter和setter方法好嗎? – Erhan