- <c:forEach> 태그
반복적인 작업을 정의할 때 사용한다. 목록에서 값을 꺼내어 처리하고 싶을 때 이 태그를 사용하면 된다.
● 문법
<c:forEach var="변수명" items="목록데이터" begin="시작인덱스" end="종료인덱스">
콘텐츠
</c:forEach>
item 속성의 값으로 다음의 값이 올 수 있다.
▶ 배열
▶ java.util.Collection 구현체. 예) ArrayList, LinkedList, Vector, EnumSet 등
▶ java.util.Iterator 구현체
▶ java.util.Enumeration 구현체
▶ java.util.Map 구현체
▶ 콤마(,) 구분자로 나열된 문자열. 예) 홍길동, 임꺽정, 일지매
var 속성은 반복문을 돌면서 items에서 꺼낸 항목 값을 가리키는 참조 변수이다.
begin과 end 속성은 items를 반복할 때 몇 번째 인덱스에서 시작하고, 몇 번째 인덱스에서 종료할 것인지를 지정한다. 다음은 배열을 반복할 경우의 예제 코드이다(그림 1).
<h2>c:forEach 태그</h2>
<h3>반복문 - 배열</h3>
<% pageContext.setAttribute("nameList", new String[] {"홍길동", "임꺽정", "일지매"}); %>
<ul>
<c:forEach var="name" items="${nameList}">
<li>${name}</li>
</c:forEach>
</ul>
다음과 같이 반복 대상에 대해 시작 인덱스와 종료 인덱스를 지정할 수 있다(그림 2).
<h3>반복문 - 배열의 시작 인덱스와 종료 인덱스 지정</h3>
<% pageContext.setAttribute("nameList2",
new String[]{"홍길동", "임꺽정", "일지매", "주먹대장", "똘이장군"}); %>
<ul>
<c:forEach var="name" items="${nameList2}" begin="2" end="3">
<li>${name}</li>
</c:forEach>
</ul>
다음은 ArrayList 객체에 대해 반복문을 적용한 예이다(그림 3).
<h3>반복문 - ArrayList 객체</h3>
<%
ArrayList<String> nameList3 = new ArrayList<String>();
nameList3.add("홍길동");
nameList3.add("임꺽정");
nameList3.add("일지매");
nameList3.add("주먹대장");
nameList3.add("똘이장군");
pageContext.setAttribute("nameList3", nameList3);
%>
<ul>
<c:forEach var="name" items="${nameList3}">
<li>${name}</li>
</c:forEach>
</ul>
다음과 같이 콤마(,)로 구분된 문자열도 반복문을 적용할 수 있다(그림 4).
<h3>반복문 - 콤마로 구분된 문자열</h3>
<% pageContext.setAttribute("nameList4", "홍길동,임꺽정,일지매,주먹대장,똘이장군"); %>
<ul>
<c:forEach var="name" items="${nameList4}">
<li>${name}</li>
</c:forEach>
</ul>
배열이나 List 없이 임의적으로 특정 횟수만큼 반복문을 돌리고 싶을 때는 다음과 같이 하면 된다(그림 5).
<h3>반복문 - 특정 횟수 만큼 반복</h3>
<ul>
<c:forEach var="no" begin="1" end="6">
<li><a href="jstl0${no}.jsp">JSTL 예제 ${no}</a></li>
</c:forEach>
</ul>
- <c:forTokens> 태그
이 태그를 사용하면 문자열을 특정 구분자(delimiter)로 분리하여 반복문을 돌릴 수 있다.
<%//<c:forTokens>태그 예제%>
<h2>c:forTokens 태그</h2>
<% pageContext.setAttribute("tokens","v1=20&v2=30&op=+"); %>
<ul>
<c:forTokens var="item" items="${tokens}" delims="&">
<li>${item}</li>
</c:forTokens>
</ul>
다음은 "v1=20&v2=30&op=+" 문자열을 '&'를 기준으로 분리하여 반복한 결과이다(그림 6).
- <c:url> 태그
URL을 만들 때 사용하는 태그이다. 이 태그를 사용하면 매개변수를 포함한 URL을 손쉽게 만들 수 있다(그림 7).
<%//<c:url>태그 예제%>
<h2>c:url 태그</h2>
<c:url var="calcUrl" value="http://localhost:9999/web05/calc/Calculator.jsp">
<c:param name="v1" value="20"/>
<c:param name="v2" value="30"/>
<c:param name="op" value="+"/>
</c:url>
<a href="${calcUrl}">계산하기</a>
다음은 앞의 코드를 실행하고 나서 만들어진 <a> 태그의 소스와 실행 결과이다(그림 8).
<a href="http://localhost:9999/web05/calc/Calculator.jsp?v1=20&v2=30&op=%2b">계산하기<a/>
참고도서 : https://freelec.co.kr/book/1674/
[열혈강의] 자바 웹 개발 워크북
[열혈강의] 자바 웹 개발 워크북
freelec.co.kr
'교재 실습 > 자바 웹 개발 워크북' 카테고리의 다른 글
61. JSTL 사용하기 (6) (0) | 2022.07.05 |
---|---|
60. JSTL 사용하기 (5) (0) | 2022.07.04 |
58. JSTL 사용하기 (3) (0) | 2022.06.30 |
57. JSTL 사용하기 (2) (0) | 2022.06.29 |
56. JSTL 사용하기 (1) (0) | 2022.06.28 |
댓글