2009-10-13 44 views
2

我不喜歡JSF,但我需要解決這個問題,我在「純」JSF工作。 所以這是我baisicly需要,但我不知道如何與JSF完成它:JSF的'總'變量類似c:在JSTL中設置

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

現在我可以顯示簡單的$ {}總總價值爲u知道。

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

但我不知道如何設置,這將在每個迭代增加總變量? 如何解決這個問題?

+0

我沒有找到JSF解決方案,這是遲緩的,我修改後端bean,所以問題有點解決,但我仍然有興趣聽到這是可能的只用JSF解決 – Splendid 2009-10-13 14:13:10

回答

2

爲什麼不只是在backing bean中進行計算,只是用jsf來檢索呢?

爲了回答你的問題,我不知道使用JSF庫設置變量的可能性。

+0

我想避免這種情況,因爲我正在學習JSF,在backing bean中實現它不是問題,但如果可能,我想在JSF中實現它? – Splendid 2009-10-13 11:50:44

+0

因爲您正在學習JSF,所以您必須定義在演示文稿方面要做什麼以及在服務器端執行什麼操作。總數通常是您可以在服務器端計算的值,並且僅在JSF頁面上使用getter。 – romaintaz 2009-10-13 12:16:38

+0

只是爲了您的知識,您可以在JSF中使用JSTL組件... – romaintaz 2009-10-13 12:17:25

0

您正在同時混合樹木構建時間標籤和rendertime標籤。 取代c:for each與ui:重複看到這裏c:foreach vs ui:repeat