我不喜欢 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>
如您所知,现在我可以使用简单的 ${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>
但我不知道如何设置每次迭代都会增加的 total 变量? 如何解决这个问题?!
最佳答案
为什么不直接在backing bean中做计算,直接用jsf获取呢?
为了回答您的问题,我不知道是否可以仅使用 JSF 库来设置变量。
关于java - JSF 'total' 变量类似于 c :set in JSTL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1559689/