본문 바로가기
프로그래밍/스프링프레임워크

JSTL - <c:forEach>, <c:forTokens> 태그 사용법

by pentode 2019. 1. 11.

<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>

실행결과:
홍길동
김철수
박영희

 

반응형