Auto Calculer la somme totale d'une colonne avec des données numériques dans le pied de page datable

lorsque les données numériques sont énumérées dans un <p:dataTable> (ou <h:dataTable> ), y a-t-il un moyen d'obtenir la somme totale dans la rangée de résumé dans le pied de page de la table sans la calculer dans la fève de soutien et de le fournir comme une autre propriété de fève?

6
demandé sur BalusC 2013-12-08 21:00:54

1 réponses

si votre environnement supporte la nouvelle EL 3.0 de Java EE 7 (par exemple WildFly 8 ), alors vous pouvez utiliser le nouveau support pour les opérations Java 8 comme Stream et Lambda dans EL (Oui, cela fonctionne même si vous utilisez Java 7).

dans votre cas particulier, vous pouvez utiliser L'équivalent EL 3.0 de Java 8 IntStream#sum() (ou DoubleStream#sum() , selon le type de propriété):

<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>
13
répondu BalusC 2015-08-24 13:06:54