2014-03-26 24 views
1

我將一個對象從servlet傳遞給jsp,然後我在jsp中迭代該對象,並在表中顯示結果,如下所示。在迭代表格時,我計算一些計數並將其存儲在一個變量中。如何在jsp的表格頂部顯示變量值?

這是我的計數變量 -

kCount 
rCount 
totalCount 

然後我顯示如下圖所示的fieldset這些計數變量的實際值和正常工作。

<div> 

    <!-- if I try to show the fieldset here, then I see all the values coming as zero. --> 

<TABLE> 
    <TR> 
     <TH>VALUE1</TH> 
     <TH>VALUE2</TH> 
     <TH>VALUE3</TH> 
     <TH>VALUE4</TH> 
    </TR> 

    <c:set var="kCount" value="0" scope="page"/> 
    <c:set var="rCount" value="0" scope="page"/> 
    <c:set var="totalCount" value="${CV.getValue().size()}" scope="page"/> 

    <c:forEach var="i" begin="0" end="${CV.getValue().size() - 1}"> 
     <TR> 
      <TD> 
       ${CV.getValue().get(i)} 
      </TD> 
      <TD> 
      ${CV.getHasR().get(i)} 
      <c:if test="${CV.getHasR().get(i) == 'True'}"> 
       <c:set var="rCount" value="${rCount + 1}" scope="page"/> 
      </c:if> 
      </TD> 
      <TD> 
      ${CV.getType().get(i)} 
      <c:if test="${CV.getType().get(i) == 'K'}"> 
       <c:set var="kCount" value="${k + 1}" scope="page"/> 
      </c:if> 
      </TD> 
     </TR> 
    </c:forEach> 
</TABLE> 

    <!-- I don't want to show the fieldset here, it should be shown at the top of the table --> 
    <fieldset> 
     <legend><b>Window</b></legend> 
     <table> 
      <tr> 
       <th>VALUE2</th> 
       <th>VALUE3</th> 
      </tr> 
      <tr> 
       <td>Total rows:</td> 
       <td>${totalCount}</td> 
      </tr> 
      <tr> 
       <td>R Count:${rCount}</td> 
       <td>K count:${kCount}</td> 
      </tr> 
     </table> 
    </fieldset> 
</div> 

現在,如果我嘗試複製此字段集,並嘗試在table,而不是在表的底部顯示的上方顯示的話,我看到所有的值爲零。我的主要目標是顯示fieldset中每個變量的值,但它應顯示在表格的頂部,而不是底部。

任何想法,如果可能的話,這可能是一個?

+0

你可以爲此創建另一個'for'循環 – Baby

+0

@RafaEl:嗯..除了for循環外,還有別的辦法嗎? – AKIWEB

+6

通常,JSP應該用於演示。計算和其他業務邏輯通常屬於servlet。您可以計算您需要的值並將它們作爲附加變量傳遞給JSP。 – djmorton

回答

3

至少有三個選擇在這裏(我相信還有更多):

  1. 計算您的總額在servlet並通過他們傳遞給JSP顯示
  2. 在JSP中,環首先計算總計並顯示它們,然後再次循環顯示數據
  3. 在JSP中,在計算總計時循環顯示數據,然後使用jQuery或類似語句將總計寫回正確的位置使用javascript。