使用数据表页脚中的数值数据自动计算列的总和

时间:2013-12-08 17:00:55

标签: jsf primefaces datatable sum el

当数字数据列在<p:dataTable>(或<h:dataTable>)中时,有没有办法在表的页脚的摘要行中获取总和而不在辅助bean中计算并提供它又作另一个bean属性?

1 个答案:

答案 0 :(得分:13)

如果您的环境支持Java EE 7的新EL 3.0(例如WildFly 8),那么您可以使用类似Java 8的新支持Stream and Lambda operations in EL(是的,这甚至可以工作)使用Java 7时。

在您的特定情况下,您可以使用EL 3.0等效的Java 8 IntStream#sum()(或DoubleStream#sum(),具体取决于属性类型):

<h:dataTable value="#{bean.items}" var="item">
    <h:column>
        #{item.number}
    </h:column>
    <f:facet name="footer">
        Total: #{bean.items.stream().map(item->item.number).sum()}
    </f:facet>
</h:dataTable>