且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

自动计算数据表页脚中具有数字数据的列的总和

更新时间:2023-02-05 08:05:53

如果您的环境支持 Java EE 7 的新 EL 3.0(例如 WildFly 8),那么您可以利用对类似 Java 8 的新支持 EL 中的流和 Lambda 操作(是的,即使在使用 Java 7 时也可以使用).

If your environment supports Java EE 7's new EL 3.0 (e.g. WildFly 8), then you can make use of new support for Java 8-like Stream and Lambda operations in EL (yes, this works even when using Java 7).

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

In your particular case, you can use the EL 3.0 equivalent of Java 8's IntStream#sum() (or DoubleStream#sum(), depending on property type):

<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>