JSTL을 이용하여 합계를 구하는 방법이 필요할 때가 있다.
(기본적으로 <c:set>, <c:out>을 사용한다.)
개인적으로는 forEach문과 함께 사용하는 경우가 많은 것 같다.
보통 가장 우측이나 하단에 합계에 관련되어 숫자를 계산하기에 적합하다.
아래 형태는 우측에 합계를 나타낼 때 자주 사용할 수 있는 형태이다.
<c:forEach items="${output}" var="data">
<c:set var="row_sum" value="0" />
<tr>
<td>
<c:set var="row_sum" value="${row_sum+ data.num_1}"
</td>
<td>
<c:set var="row_sum" value="${row_sum+ data.num_2}"
</td>
……
<td>
<c:set var="row_sum" value="${row_sum+ data.num_n}"
</td>
<td>
<c:out value="${row_sum}" />
</td>
</tr>
</c:forEach>
아래 형태는 하단에 합계를 나타낼 때 자주 사용할 수 있는 형태이다.
<c:set var="col_sum" value="0" />
<c:forEach items="${output}" var="data">
<tr>
<td>
<c:set var="col_sum" value="${col_sum+ data.num_1}"
</td>
</tr>
<tr>
<td>
<c:set var="col_sum" value="${col_sum+ data.num_2}"
</td>
</tr>
……
<tr>
<td>
<c:set var="col_sum" value="${col_sum+ data.num_n}"
</td>
</tr>
</c:forEach>
<tr>
<td>
<c:out value="${col_sum}" />
</td>
</tr>
두가지 모두를 사용해서 한 테이블을 나타낼 수도 있고, 각각 필요한 걸 사용할 수도 있다.
굳이 <c:set>이 <td>안에 들어가지 않더라도 사용하는데는 문제가 없으나 기본 위치를 저렇게 생각하고 사용하면 개인적으로 편리한 것 같다.
우측 합계와 같이 변수를 따로 몇개 더하지 않아도 된다면 굳이 <c:set>을 사용하지 않고, <c:out>안에서 더하더라도 상관 없을 것 같다.
'알아가기 > 웹' 카테고리의 다른 글
JavaScript에서 URL Parameter 간단히 가져오기 (0) | 2017.04.19 |
---|---|
JSTL 숫자 포맷 맞추기 (<fmt:formatNumber> 사용 예제) (2) | 2017.03.22 |
구글 애널리틱스 API 쿼리 만들기 (0) | 2017.03.08 |
Google Analytics API 원하는 사이트 통계 가져오기 (0) | 2017.03.02 |
구글 애널리틱스 추적코드 가져오기 (0) | 2017.02.27 |