<c:forEach> 태그
반복 작업에 사용한다. 특히 목록에서 값을 꺼내서 처리할때 사용한다.
<c:forEach var="변수명" items="목록 데이터" begin="시작 인덱스" end="종료 인덱스">콘텐츠</c:forEach>
items에는 다음을 지정할 수 있다.
- 배열
- java.util.Collection 구현체(ArrayList, LinkedList, EnumSet, ...)
- java.util.Iterator 구현체
- java.util.Enumeration 구현체
- java.util.Map 구현체
- 콤마(,) 구분자로 나열된 문자열
var는 반복문을 돌면서 items에서 꺼낸 항목 값을 가리키는 참조 변수이다.
배열(ArrayList) 출력
<%
testData.addAttribute("nameList", new String[] {"A","B","C","D","E"});
%>
<c:forEach var="name" items="${nameList}" varStatus="status">
<p>${status.count} : <c:out value="${name}" /></p>
</c:forEach>
실행결과:
1 : A
2 : B
3 : C
4 : D
5 : E
- 객체 출력 (boardVO 객체의 getTitle() 메소드를 호출한 결과를 출력합니다.)
<c:forEach var="boardVO" items="${boardList}">
<p><c:out value="${boardVO.title}" /></p>
</c:forEach>
- Map 리스트 출력 (get("title") 메소드를 호출한 결과를 출력합니다.)
<c:forEach var="boardMap" items="${boardList}">
<p><c:out value="${boardMap.title}" /></p>
</c:forEach>
- 일정 횟수
<c:forEach var="i" begin="0" end="3">
<p><c:out value="${i}" /></p>
</c:forEach>
실행결과 :
0
1
2
3
- 증가 단계 지정 (2씩 증가하도록 했음. 음수를 사용할수 없음)
<c:forEach var="i" begin="0" end="3" step="2">
<p><c:out value="${i}" /></p>
</c:forEach>
실행결과 :
0
2
- 리스트를 역으로 출력
<c:set var="size" value="${fn:length(nameList)}" />
<c:forEach var="i" begin="1" end="${size}">
<p><c:out value="${nameList[size - i]}" /></p>
</c:forEach>
- varStatus 속성 사용
<c:forEach var="name" items="${nameList}" varStatus="status">
<p>${status.count} : ${status.index} : ${status.current}</p>
</c:forEach>
실행결과 :
1 : 0 : A
2 : 1 : B
3 : 2 : C
4 : 3 : D
5 : 4 : E
status.index | 0부터 시작하는 루프의 인덱스 입니다. |
status.count | 현재 몇번째 루프인지 값입니다. 1부터 시작합니다. |
status.current | 현재 아이템입니다. var 속성의 값과 같습니다. |
status.first | 현재가 첫번째 루프이면 참입니다. |
status.last | 현재가 마지막 루프이면 참입니다. |
status.begin | begin 속성을 사용했을 경우 그 값이 나옵니다. |
status.end | end 속성을 사용했을 경우 그 값이 나옵니다. |
status.step | step 속성을 사용했을 경우 그 값이 나옵니다. |
반응형
'IT > 자바스크립트' 카테고리의 다른 글
[jQuery] load() 메소드 인자 (0) | 2023.10.16 |
---|---|
[jQuery] CheckBox 선택된 값 가져오기 (0) | 2023.06.16 |
[자바스크립트] JSTL (c태그)사용법 정리 (2) | 2023.06.16 |
[JSP] 정규표현식 (ES6) (0) | 2023.06.09 |
[자바 스크립트] ajax callback 함수에서 xml 파싱 (0) | 2023.04.25 |