Primefaces Datatable无法显示List <interfaces>的值

时间:2015-09-03 07:46:53

标签: jsf-2 primefaces datatable

我有2个bean(BeanA,BeanB)实现相同的接口(IBean)。

我要做的是显示<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;
 }

奇怪的是,该表显示列表的所有行,但不显示单个元素值。像这样:

enter image description here

正如您所看到的那样,即使BeanA和BeanB被填充,该表仍具有连接(列和行)但不包含数据。

提前谢谢。

2 个答案:

答案 0 :(得分:0)

抱歉,我感到很惭愧。

问题是这样的:       VAR =&#34;排&#34; 我没有意识到我在<p:columns>标签中使用了不同的名称,而不是主要表面,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 :(得分:-1)

它是正常的。因为你的值 {modelBeanMB.myIBeanList} 而且它是空的。你应该填写方法。