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

프로그래밍/스프링프레임워크 2019. 1. 11. 02:04
반응형

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


실행결과:

홍길동

김철수

박영희


반응형

댓글을 달아 주세요