我有这样的数据表:

  <p:dataTable value="#{noteMB.noteList}" var="noteItem" id="noteListTable"
        rowKey="#{noteItem.hashCode()}" selectionMode="single"  selection="#noteMB.selectedNote}" paginator="true" rows="10" paginatorPosition="top"
        paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" rowsPerPageTemplate="5,10,15">

    <p:column width="300">
       <f:facet name="header">
            <h:outputText value="#{noteItem.name == 'blabla' ? 'true' : 'false' }"  />
       </f:facet>
            <h:outputText value="#{noteItem.code}"  />
    </p:column>
  </p:dataTable>


我的问题:为什么facet name =“ header”区域中的noteItem为null?
当我运行此代码时,header(noteItem.name)为false并且列value(noteItem.code)有一个值。

最佳答案

noteItem是您的var条目。

var="noteItem"

假定此var属性用于保存dataTable每行的变量项。
var将遍历noteList中的每个项目。

正如Daniel所说,在h:facet标记期间,甚至没有开始创建行。它是每一列的主要标题,实际上没有数据表行。
因此,您在那里获得空值。

简而言之,您无法在构面中访问var属性给定的对象。
因为构面是与行无关的。

10-08 07:53