我有这样的报告
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>>。
${listOfRecords}
HashMap<String, HashMap<String, Integer>>
我该如何实现?
这就是我所能想到的:
<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>
不得不更改一些名称,对不起您,我无法理解。
我认为应该可以。