Programming/JSP

JSTL forEach Reverse 역순으로 출력하기

통통만두 2016. 6. 9. 10:16
반응형

현재 MVC 패턴을 이용해서 개발을 하고 있습니다. jsp 에서 JSTL을 사용해서 forEach를 역순으로 하기 위해서 이리저리 시도해봤습니다만 제가 적용한 코드는 아래와 같습니다. 


약간의 첨언을 드리자면 인터넷에 찾아보면 jsp 에서 java 코드를 사용해서 역순으로 출력하기도 하는 예제가 있는데, 일단 MVC 패턴에 충실하기 위해서는 View 에서는 java 가 쓰이면 안된다는 선배의 조언이 있었습니다. 


아직 jsp 웹 개발에 익숙하지 않은터라 쉽진 않지만 배울게 참 많다고 느낍니다. 또한 배우면서 저 스스로 즐거움을 찾고 만족하고 있습니다.


<c:set var="orderListLength" value="${fn:length(orderList)}"/>
<c:forEach items="${orderList}" var="item" varStatus="status">
<option>[${orderList[orderListLength - status.count].order_stat_name}] [${orderList[orderListLength - status.count].order_seq}] [${orderList[orderListLength - status.count].order_dt}] [${orderList[orderListLength - status.count].item_name}] [${orderList[orderListLength - status.count].order_box_cnt} box]</option>
</c:forEach>


orderList은 List<Map<String,Object>> 형식으로 선언이 되어 있습니다.

orderList의 Length 의 값을 얻어온 후 loop 를 돌면서 orderList에 index 값을 주어서 출력하는 원리입니다. 주의하셔야 할 점은 var에 선언한 item 으로 접근하는 것이 아니라 ${orderList} 로 접근한다는 것입니다.


반응형