【问题标题】:Primefaces Datatable cannot display values of List<interfaces>Primefaces Datatable 无法显示 List<interfaces> 的值
【发布时间】:2015-11-28 22:41:09
【问题描述】:

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

我想要做的是在&lt;p:datatable&gt; 中显示一个 IBean (List&lt;IBean&gt;) 列表。

这里是示例 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;
 }

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

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

提前谢谢你。

【问题讨论】:

    标签: jsf-2 primefaces datatable


    【解决方案1】:

    对不起,我很惭愧。

    问题是这样的: var="行" 我没有意识到我在 &lt;p:columns&gt; 标签中使用了不同的名称,而不是 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 不会告诉你你做错了什么:)

    最好的问候

    【讨论】:

    • 这就是为什么你应该**总是**发布一个mcve...不要遗漏相关的东西!!! (但不要在其中留下无关的东西)
    • 说我要等19个小时
    【解决方案2】:

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

    【讨论】:

    • 我没有写我填充列表的部分,因为它没有用,并且在空列表的情况下,primefaces 不会画任何线。另外,在空列表的情况下,有一个属性“emptyMessage”写入指定的消息。
    • 好的明白。如果您编写所有方法,也许我可以帮助您。Getter 和 setter 方法好吗?
    猜你喜欢
    • 2012-02-22
    • 2012-07-14
    • 2012-09-19
    • 2013-04-24
    • 1970-01-01
    • 2014-01-27
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多