<c:forEach>는 List, 배열 요소를 순서대로 반복해서 처리할 수 있는 태그 입니다.
1. 이름 목록을 가진 ArrayList를 출력하는 예제 입니다.
// 리스트를 만들어서 모델에 넣습니다. List<String> nameList = new ArrayList<String>(Arrays.asList("홍길동", "김철수", "박영희")); model.addAttribute("nameList", nameList); <%-- JSP 페이지에서 출력합니다. --%> <c:forEach var="name" items="${nameList}" varStatus="status"> <p>${status.count} : <c:out value="${name}" /></p> </c:forEach> 실행결과: 1 : 홍길동 2 : 김철수 3 : 박영희 |
2. 객체가 들어 있는 리스트를 출력하는 방법 입니다.
<c:forEach var="boardVO" items="${boardList}"> <p><c:out value="${boardVO.title}" /></p> </c:forEach> |
위 코드는 boardVO 객체의 getTitle() 메소드를 호출한 결과를 출력합니다.
3. Map 이 들어있는 리스트를 출력하는 방법 입니다.
<c:forEach var="boardMap" items="${boardList}"> <p><c:out value="${boardMap.title}" /></p> </c:forEach> |
위 코드는 boardMap 의 get("title") 메소드를 호출한 결과를 출력합니다.
4. 일정 횟수의 루프를 돌면서 값을 출력하는 방법입니다.
<c:forEach var="i" begin="0" end="3"> <p><c:out value="${i}" /></p> </c:forEach> 실행결과 : 0 1 2 3 |
위의 코드는 0부터 3까지 네 개의 값을 출력합니다.
5. 증가 단계를 지정합니다.
<c:forEach var="i" begin="0" end="3" step="2"> <p><c:out value="${i}" /></p> </c:forEach> 실행결과 : 0 2 |
0부터 2씩 증가하면서 출력합니다. step는 음수를 사용할 수 없습니다.
6. 리스트를 역으로 출력하는 예 입니다.
<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> |
7. 루프의 상태를 나타내는 varStatus 속성 사용법 입니다.
<c:forEach var="name" items="${nameList}" varStatus="status"> <p>${status.count} : ${status.index} : ${status.current}</p> </c:forEach> 실행결과 : 1 : 0 : 홍길동 2 : 1 : 김철수 3 : 2 : 박영희 |
- status.index : 0부터 시작하는 루프의 인덱스 입니다.
- status.count : 현재 몇번째 루프인지 값입니다. 1부터 시작합니다.
- status.current : 현재 아이템입니다. var 속성의 값과 같습니다.
- status.first : 현재가 첫번째 루프이면 참입니다.
- status.last : 현재가 마지막 루프이면 참입니다.
- status.begin : begin 속성을 사용했을 경우 그 값이 나옵니다.
- status.end : end 속성을 사용했을 경우 그 값이 나옵니다.
- status.step : step 속성을 사용했을 경우 그 값이 나옵니다.
8. <c:forTokens> 사용법
문자열을 분리자를 사용해서 분리해서 출력할 수 있습니다.
<c:forTokens var="name" items="홍길동,김철수,박영희" delims=","> <p><c:out value="${name}"/></p> </c:forTokens> 실행결과: 홍길동 김철수 박영희 |
'프로그래밍 > 스프링프레임워크' 카테고리의 다른 글
Maven 웹 프로젝트 서블릿 3.1로 업그레이드 하기 (8) | 2019.03.10 |
---|---|
Eclipse에서 Maven 웹 프로젝트 만들기 (9) | 2019.03.06 |
JSTL - <c:if>, <c:choose> 태그 사용법 (3) | 2019.01.10 |
JSTL - <c:set> 태그 사용법 (2) | 2018.12.31 |
스프링시큐리티에서 CSRF만 사용하기 (0) | 2018.11.19 |