2013-04-30 65 views
3

我有一個JSF數據表,它有8列。最後4列是數值列。可以說我的數據表格帶來20行結果。我想添加最後一行,其中只包含最後4列的字段,幷包含20行對應值的總和。我想用Facelets代碼添加最後一行。我怎樣才能做到這一點 ?在Facelets中向數據錶行添加最後一行

+0

奏效了我。謝謝。 – Carlos 2013-04-30 12:27:19

回答

1

如果你有一個表,因爲這一個,你可以添加這個頁腳方面:

<h:dataTable id="table1" value="#{shoppingCartBean.items}" var="item" 
      border="1"> 
    <f:facet name="header"> 
     <h:outputText value="Your Shopping Cart" /> 
    </f:facet> 
    <h:column> 
     <f:facet name="header"> 
      <h:outputText value="Item Description" /> 
     </f:facet> 
     <h:outputText value="#{item.description}" /> 
    </h:column> 
    <h:column> 
     <f:facet name="header"> 
      <h:outputText value="Price" /> 
     </f:facet> 
     <h:outputText value="#{item.price}" /> 
    </h:column> 
    <f:facet name="footer"> 
     <h:panelGroup style="display:block; text-align:right"> 
      <h:outputText value="Total 1: #{shoppingCartBean.total1}" /> 
      <h:outputText value="Total 2: #{shoppingCartBean.total2}" /> 
      <h:outputText value="Total 3: #{shoppingCartBean.total3}" /> 
      <h:outputText value="Total 4: #{shoppingCartBean.total4}" /> 
     </h:panelGroup> 
    </f:facet> 
</h:dataTable> 

那麼你應該在你的後盾bean代碼的總功能:

@ManagedBean 
public class ShoppingCartBean { 
    ... 
    public int total1() { 
     // Do the sum of all elements from first column of table as you wish.... 

     return result; 
    } 

    public int total2() { 
     // Do the sum of all elements from second column of table as you wish.... 

     return result; 
    } 
} 

如果您更喜歡一個更詳盡和可重複使用的解決方案,您可以創建自己的EL功能,如下所示:

<f:facet name="footer"> 
    <h:panelGroup style="display:block; text-align:right"> 
     <h:outputText value="Total 1: #{func:calculateTotal(shoppingCartBean.items, 4}" /> 
     <h:outputText value="Total 2: #{func:calculateTotal(shoppingCartBean.items, 5}" /> 
     <h:outputText value="Total 3: #{func:calculateTotal(shoppingCartBean.items, 6}" /> 
     <h:outputText value="Total 4: #{func:calculateTotal(shoppingCartBean.items, 7}" /> 
    </h:panelGroup> 
</f:facet> 

對於此解決方案,您可以檢查BalusC description on how to create a custom el function

問候,