2012-07-31 1 views
6

나는 어떤 개체가 포함 된 list을 가지고 있습니다. 개체의 필드는 hours입니다.<c:set> 태그의 값을 업데이트하는 방법 <c:foreach> 태그 안에

<c:foreach>에서 나는 목록을 반복하고 객체를 가져 오는 중입니다.

이제 모든 반복 된 객체의 hours 필드를 totalHours 변수로 요약하고 싶습니다.

내 코드 :

<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'를 설정 하시겠습니까? 어떤 가치? –

답변

20

, 그것은 다음과 같이 것을 :

// 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> 
관련 문제