H:dataTable的“var”属性不小EL里面工作(h:dataTable “var” attr

2019-10-29 06:11发布

我的问题是,我无法弄清楚如何使内部EL代码<f:facet>与工作<h:dataTable> var属性。

JSF代码:

<h:dataTable value="#{backingBean.someList}" var="absolutelyUniqueVar">
    <h:column>
       <f:facet name="header">#{backingBean.someEntity}</f:facet>
       <h:outputText value="#{backingBean.someEntity.someField}"/>
    </h:column>
    <h:column>
       <f:facet name="header">#{absolutelyUniqueVar.anotherField}</f:facet>
       <h:outputText value="#{absolutelyUniqueVar.anotherField}"/>
    </h:column>
</h:dataTable>

它所产生的:

<table>
    <thead>
       <tr>
           <th>someEntityClass@f613189e</th>
           <th></th>
       </tr>
    </thead>
    <tbody>
       <tr>
           <td>someField</td>
           <td>anotherField</td>
       </tr>
    </tbody>
</table>

正如你所看到的,EL在第一<f:facet>工作正常,但第二个生产什么。

我不熟悉JSF,所以我会感谢所有帮助。 谢谢。

Answer 1:

这是可以预料的。 它是没有意义使用一个迭代变量的值在一个共同的报头。 你会怎么表现呢? 我应该做它,如果它到达第二排? 覆盖的第一要素的价值呢? 那么到底你只能看到最后一个元素的值。 但因为这也没有什么意义,想要的东西是不可能的。 它没有意义以任何方式......有或没有JSF。

从看到也是同样适用这里由@BalusC评论报价:

..但你不正是你想要的列标题,究竟为什么要显示的行非常清楚。 通常情况下,一台不工作这样的。 列标题应代表列,例如“名称”,“电子邮件”,“标题”,“价格”等的描述,在特定情况下,“关键”和“价值”将是对那些两列候选标题。 请注意,这不是一个JSF的问题,而只是一个一般的模型/设计问题,以表格数据。 在其他任何表现的框架试图与当你有完全一样的问题。

如果你想使用一个特定元素(已淘汰的比如常用单位)的值,则明确地引用一个(第一?)元素在标题:

#{backingBean.someList[0].uom}

也可以看看

  • H:dataTable的头小面不显示从行值


文章来源: h:dataTable “var” attribute doesn't work inside facet EL
标签: jsf el