본문 바로가기
IT/자바스크립트

[자바스크립트] C태그 forEach 사용법

by 불멸남생 2023. 6. 16.

<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 속성을 사용했을 경우 그 값이 나옵니다.

 

반응형