Back-End/Java(자바)

JSTL 반복문(forEach) 사용법 정리

FIF 2019. 6. 28. 09:38
반응형

JSTL 반복문

반복문은 동일한 작업을 특정 횟수 만큼 반복할 때 사용한다.

JSTL에서는 제일 흔하게 사용하는 <c:forEach>에 대해서 알아보자.

 

지시문 선언

반복문을 사용하려면 JSP 파일 상단에 JSTL core 선언이 필요하다.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

 

위의 코드를 복사하여 아래 그림과  같이 JSP파일 상단에 선언하면 된다.

 

 

 

<c:forEach> 목록을 이용한 반복문

<c:forEach>는 목록을 입력 받아서 목록의 갯수만큼 반복하는 반복문이다.

 

 

속성 설명

항목 설명 필수 여부 기본값
var 사용할 변수명 필수 없음
items Collection 객체(List, Map) 필수  
begin 반복 시작 index. 정의되지 않을경우 o    
end 반복 종료   마지막 index
step 반복할 때마다 건너뛸 index 개수    
varStatus 반복 상태를 알 수 있는 변수    

 

 

아래 그림은 <c:forEach>를 사용하기 위해 필수값인 var와 items를 사용하여 반복문을 돌려서 member들의 정보를 테이블로 출력한 예이다.

members는 java 단에서 보낸 데이터이다.(이는 생략한다.)

더 아래로 가면 일반적인 사용예를 코드와 함께 볼 수 있다.

 

결과

 

 

 

varStatus 값 설명

속성중 varStatus는 아래와 같이 사용할 수 있다.

리턴 설명
index int items에 정의한 항목을 가리키는 index 번호이다. 0부터 시작한다
count int 현재 몇번째 반복인지 나타낸다. 1부터 시작한다.
first boolean 현재 반복이 첫번째인지 여부
last boolean 현재 반복이 마지막인지 여부

 

${status.current} 현재 for문의 해당하는 번호

  • ${status.index} 0부터의 순서
  • ${status.count} 1부터의 순서
  • ${status.first} 첫 번째인지 여부
  • ${status.last} 마지막인지 여부
  • ${status.begin} for문의 시작 번호
  • ${status.end} for문의 끝 번호
  • ${status.step} for문의 증가값

 

 

<c:foreach> 태그 상태 속성 이다.

속성을 이용해서 제어하면 좀더 쉽게 제어할 수 있다.

< c:foreach items=”${RESULT}” var=”RESULT” varStatus=”status”>
	${status.current}<br/> <!– 현재 아이템 –>
	${status.index}<br/>        <!– 0부터의 순서 –>
	${status.count}<br/>        <!– 1부터의 순서 –>
	${status.first}<br/>           <!– 현재 루프가 처음인지 반환 –>
	${status.last}<br/>           <!– 현재 루프가 마지막인지 반환 –>
	${status.begin}<br/>        <!– 시작값 –>
	${status.end}<br/>         <!– 끝값 –>
	${status.step}<br/>         <!– 증가값 –>
< /c:forEach>

 

 

사용 예제

1. 모든 속성을 사용한 예

<c:forEach var="item" items="${items}" begin="0" end="10" step="1" varStatus="status">

     <p>번호 : ${status.index}</p>

     <p>책명 : ${item.name}</p>

     <p>저자 : ${item.author}</p>

     <p>출판사 : ${item.publisher}</p>

</c:forEach>

위 예시는 ${items} 0부터 10까지 반복하면서 목록을 표시한다.

 

 

 

2. 일반적인 사용 예

<c:forEach var="item" items="${items}">

     <p>번호 : ${status.index}</p>

     <p>책명 : ${item.name}</p>

     <p>저자 : ${item.author}</p>

     <p>출판사 : ${item.publisher}</p>

</c:forEach>

 

 

<c:forTokens> 토큰을 이용한 반복문

문자열을 특정기호로 잘라내어 반복하는 반복문이다. Java에서의 StringTokenizer에 비슷하게 동작한다.

 

속성 설명

항목 설명 필수 여부 기본값
delims 문자열을 분리하기 위한 특정 기호 필수  

 

사용 예제

<ol>

   <c:forTokens var="item" items="사과,포도,바나나,수박,딸기" delims=",">

       <li>과일 : ${item}</li>

   </c:forTokens>

</ol>

items에 문자열을 넣고, delims에는 분리할 기호를 넣는다.

각 토큰별로 분리된 문자열은 var로 지정된 변수로 얻어 올 수 있다.

 

 

 

 

 

 

반응형