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

Primefaces Datatable cannot display values of List<interfaces>

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

我想做的是在 <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;
 }

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

如您所见,table 包含所有内容(列和行),但即使 BeanA 和 BeanB 已填充,也没有数据。

提前致谢。

它是 normal.Because 你的值 {modelBeanMB.myIBeanList} 它是 empty.You 应该填写在方法中。

对不起,我感到很惭愧

问题是这样的: 变量="row" 我没有意识到我在 <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 不会告诉你哪里做错了:)

此致