Java JSF&x27;总计';变量类似于JSTL中的c:set

Java JSF&x27;总计';变量类似于JSTL中的c:set,java,jsf,jstl,Java,Jsf,Jstl,我不喜欢JSF,但我需要用它来解决这个问题,我使用的是“纯”JSF。 这就是我最需要的,但我不知道如何用JSF来实现: <c:set var="total" value="0"></c:set> <c:forEach var="item" items="${cart}"> <tr> <td>${item.product.name}</td> <td>${item.prod

我不喜欢JSF,但我需要用它来解决这个问题,我使用的是“纯”JSF。 这就是我最需要的,但我不知道如何用JSF来实现:

<c:set var="total" value="0"></c:set>

<c:forEach var="item" items="${cart}">
    <tr>
        <td>${item.product.name}</td>
        <td>${item.product.price}</td>
        <td>${item.quantity}</td>
        <td>${item.product.price * item.quantity}</td>
    </tr>
    <c:set var="total" value="${total + item.product.price * item.quantity}"></c:set>
</c:forEach>

${item.product.name}
${item.product.price}
${item.quantity}
${item.product.price*item.quantity}
现在我可以用简单的${total}显示总值了,你知道

我的JSF表如下所示:

    <h:dataTable var="item" value="#{mbProducts.cart_items}" binding="#{mbProducts.tableComponent}" border="1">

        <h:column>
            <f:facet name="header">
                <h:outputText value="NAME" />
            </f:facet>

            <h:outputText value="#{item.product.name}" />
        </h:column>

        <h:column>
            <f:facet name="header">
                <h:outputText value="PRICE" />
            </f:facet>

            <h:outputText value="#{item.product.price}" />
        </h:column>

        <h:column>
            <f:facet name="header">
                <h:outputText value="NUM" />
            </f:facet>

            <h:outputText value="#{item.quantity}" />
        </h:column>

        <h:column>
            <f:facet name="header">
                <h:outputText value="TOTAL PRICE" />
            </f:facet>

            <h:outputText value="#{item.product.price * item.quantity}"/>
        </h:column>

    </h:dataTable>

但我不知道如何设置在每次迭代中增加的总变量?
怎么解决这个问题

为什么不在支持bean中进行计算,然后使用jsf检索它呢


为了回答您的问题,我不知道仅仅使用JSF库设置变量的可能性

有趣的细节-
标记将在中提供。

您同时混合了树构建时标记和渲染时标记。
将c:forEach替换为ui:repeat请参见此处

我想避免这种情况,因为我正在学习JSF,在backingbean中实现这一点不是问题,但如果可能的话,我想在JSF中实现它?因为您正在学习JSF,所以必须定义在表示端做什么,以及在服务器端做什么。总数通常是一种可以在服务器端计算的值,并且只能在JSF页面上使用getter。仅使用JSF解决某个问题的目标并不意味着您只能在标记中解决它。JSF也包括您的支持bean,所以您可以自己决定在bean中还是在页面上计算出更好的内容。总的计算肯定属于你的支持bean,而不是页面。在一天结束的时候,你仍然在用JSF做这件事。我没有找到JSF的解决方案,这是迟钝的,我修改了后端bean,所以问题已经解决了,但我仍然有兴趣听到这个问题是否只有用JSF才能解决