Jsf h:dataTable标头方面不显示行中的值

Jsf h:dataTable标头方面不显示行中的值,jsf,datatable,header,facet,Jsf,Datatable,Header,Facet,我试图理解为什么第二列facet(带有#{entry.value})不显示任何内容,只显示一个空标题 <h:dataTable value="#{bean.entries}" var="entry"> <h:column> <f:facet name="header"> <h:outputText value="UserId" /> </f:facet> <h:outputText valu

我试图理解为什么第二列facet(带有#{entry.value})不显示任何内容,只显示一个空标题

<h:dataTable value="#{bean.entries}" var="entry">
<h:column>
    <f:facet name="header">
        <h:outputText value="UserId" />
    </f:facet>
    <h:outputText value="#{entry.key}" />
</h:column>
<h:column>
    <f:facet name="header">
        <h:outputText value="#{entry.value}" />
    </f:facet>
    <h:outputText value="#{entry.value}" />
</h:column>

我知道我可能做错了,因为myfaces不知道应该从哪一行将值#{entry.value}放在header列中

在我的例子中,每一行都有相同的#{entry.value}值,所以任何行都可以

那么,我怎样才能拥有一个dataTable来检索对象列表(对应的行)和一个要放在header对象中的值呢?(或要放入标题所有列的值列表)

有什么想法吗


谢谢

它到底应该在标题中显示哪一行?您可以看到该表有两列。第二列的第一行是标题,第二行是值。他们应该显示相同的信息,但我得到一个空标题!第二行正确显示了{entry.value}的值,您在列标题中引用的是基于行的值。您到底要显示哪一行的值?假设该表有10行(即
{bean.entries}
返回10项)。您希望在页眉中重新显示哪一个?(我希望您现在开始意识到,
本身就有这个问题,这就是标题为空的原因)然后通过
{bean}
引用该元素。这仅表示模型已损坏/易碎。如果只有两个元素呢?你可能想先回到白板上。这一部分很简单,但你不太清楚你到底想在列标题中显示哪一行以及为什么。通常情况下,桌子不是这样工作的。列标题应表示列的描述,例如“名称”、“电子邮件”、“标题”、“价格”等。在您的特定情况下,“键”和“值”将是这两列的候选标题。请注意,这不是一个JSF问题,而是关于表格数据的一般模型/设计问题。在任何其他表示框架中尝试相同的方法时,都会遇到完全相同的问题。