2012-07-31 46 views
6

我有list其中包含一些對象。這些對象有一個hours字段。如何更新<c:set>標籤中的值使用內部012的<c:foreach>標籤

<c:foreach>我迭代列表並獲取對象。

現在我想總結totalHours變量中所有迭代對象的hours字段。

我的代碼:

<c:forEach var="attendance" items="${list }" varStatus="rowCounter1"> 
    <tr> 
    <td><c:out value="${rowCounter1.count}"></c:out></td> 
    <td><c:out value="${attendance.date }"></c:out></td> 
    <td><c:out value="${attendance.inTime }"></c:out></td> 
    <td><c:out value="${attendance.outTime }"></c:out></td> 
    <td><c:out value="${attendance.interval }"></c:out></td> 

    <c:set var="totalHours" value="${attendance.Hours += attendance.Hours }" 
      target="${attendance}"</c:set>          
    </tr> 
</c:forEach> 

我是想這一點,但它給了我下面的錯誤:

javax.el.ELException: Failed to parse the expression [${attendance.Hours += attendance.Hours } 
+0

你想設置'totalHours'嗎?以什麼價值? – 2012-07-31 07:23:27

回答

20

在Java中,它應該是這樣的:

// before the loop: 
int totalHours = 0; 
for (Attendance attendance : list) { 
    totalHours = totalHours + attendance.getHours(); 
} 

在JSTL中也是如此:

<c:set var="totalHours" value="${0}"/> 
<c:forEach var="attendance" items="${list }" varStatus="rowCounter1"> 
    ... 
    <c:set var="totalHours" value="${totalHours + attendance.hours}"/> 
</c:forEach> 
相關問題