0

こんな報告をしています

         01 jan  02 jan  03 jan  ...  total

 user1   3       5       10           18
 user2   5       6       9            20
 .
 .
 .
 total   ?       ?       ?            38

JSTL コードを使用して、最後に各行の合計を計算できます。「?」を使用して終了マークの列の合計を計算する方法が見つかりません。

行の合計については、次のように使用しています

<c:forEach var="colNames" items="${listOfRecords}">
    <tr>
        <td>${colNames.key}</td>
        <c:set var="htotal" value="0" />
        <c:forEach var="noOfTasks" items="${colNames.value}" varStatus="status">
            <td>${noOfTasks.value}</td>
            <c:set var="htotal" value="${htotal+noOfTasks.value}" />
        </c:forEach>
        <td class="foo">${htotal}</td>
    </tr>
</c:foreach>

ここ${listOfRecords}にありHashMap<String, HashMap<String, Integer>>ます。

どうすればこれを達成できますか?

4

1 に答える 1

3

これが私が思いついたすべてです:

<jsp:useBean id="column_totals" class="java.util.LinkedHashMap" scope="page"/>
<c:forEach var="row" items="${listOfRecords}">
    <tr>
        <td>${row.key}</td>
        <c:set var="row_total" value="0"/>
        <c:forEach var="column" items="${row.value}">
            <td>${column.value}</td>
            <c:if test="${empty column_totals[column.key]}">
                <c:set target="${column_totals}" property="${column.key}" value="0"/>
            </c:if>
            <c:set target="${column_totals}" property="${column.key}" value="${column_totals[column.key] + column.value}"/>
            <c:set var="row_total" value="${row_total + column.value}" />
        </c:forEach>
        <td class="foo">${row_total}</td>
    </tr>
</c:foreach>
<tr>
  <td>total</td>
  <c:forEach var="column_total" items="${column_totals}">
     <td>${column_total.value}</td>
  </c:forEach>
</tr>

申し訳ありませんが、いくつかの名前を変更する必要がありました。

うまくいくはずだと思います。

于 2013-01-17T19:56:40.590 に答える