<c:forEach> 태그를 이용한 실습
<c:forEach> 태그는 JSP 페이지에서 반복문을 수행하는 태그이며, 사용 형식은 다음과 같습니다.
<c:forEach var="변수이름" items="반복할객체이름" begin="시작값" end="마지막값"
step="증가값" varStatus="반복상태변수이름">
...
</c:forEach>
여기서 var는 반복할 변수 이름을, items는 반복할 변수 이름을, items는 반복할 객체 이름을 지정합니다. begin과 end는 각각 반복 시작 및 종료 값을 , step은 한 번 반복할 때마다 반복 변수를 증가시킬 값을, varStatus는 반복 상태 속성을 지정합니다.
varStatus의 여러 가지 속성을 아래 표에 정리했습니다.
| 속성 | 값 | 설명 |
| index | int | items에서 정의한 항목을 가리키는 index 번호입니다. 0부터 시작합니다. |
| count | int | 몇 번째 반복인지 나타냅니다. 1부터 시작합니다. |
| first | boolean | 첫 번째 반복인지 나타냅니다. |
| last | boolean | 마지막 반복인지 나타냅니다. |
<c:forEach>로 반복문을 만들어 사용해 보겠습니다.
1. member6.jsp를 다음과 같이 작성합니다. 먼저 자바 코드로 ArrayList 객체를 생성하여 문자열을 저장한 후 <c:forEach> 태그에서 사용할 수 있도록 <c:set> 태그로 변수 list에 재할당합니다. 그리고 varStatus의 loop 속성을 이용해 반복 횟수를 출력합니다. <c:forEach> 태그의 items에 ArrayList를 설정한 후 반복문 수행 시 ArrayList에 저장된 문자열을 반복 변수 data에 한 개씩 가져와 출력합니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.util.*"
pageEncoding="UTF-8"
isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
List dataList = new ArrayList();
dataList.add("hello");
dataList.add("world");
dataList.add("안녕하세요!!");
%>
<c:set var="list" value="<%=dataList %>" />
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>반복용 실습</title>
</head>
<body>
<c:forEach var="i" begin="1" end="10" step="1" varStatus="loop">
i = ${i} 반복횟수: ${loop.count} <br>
</c:forEach>
<br>
<c:forEach var="i" begin="1" end="10" step="2">
5 * ${i} = ${5*i} <br>
</c:forEach>
<br>
<c:forEach var="data" items="${list}">
${data} <br>
</c:forEach>
<br>
<c:set var="fruits" value="사과, 파인애플, 바나나, 망고, 귤" />
<c:forTokens var="token" items="${fruits}" delims=",">
${token} <br>
</c:forTokens>
</body>
</html>
2. http://localhost:8080/pro14/test03/member6.jsp로 요청하여 결과를 확인합니다.

3. 이번에는 <c:forEach> 태그를 이용해 ArrayList에 저장된 회원 정보를 출력해보겠습니다. <c:forEach> 태그를 이용하면 ArrayList에 저장된 객체에 편리하게 접근할 수 있습니다. 다음과 같이 <c:forEach> 태그의 반복 변수 i를 ArrayList의 인덱스로 사용해서 저장된 회원 정보를 차례대로 출력하도록 member7.jsp를 작성합니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.util.*, sec01.ex01.*"
pageEncoding="UTF-8"
isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
request.setCharacterEncoding("UTF-8");
List membersList = new ArrayList();
MemberBean m1 = new MemberBean("son","1234", "손흥민", "son@test.com");
MemberBean m2 = new MemberBean("ki","4321", "기성용", "ki@test.com");
MemberBean m3 = new MemberBean("park", "1212", "박지성", "park@test.com");
membersList.add(m1);
membersList.add(m2);
membersList.add(m3);
%>
<c:set var="membersList" value="<%= membersList %>" />
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 정보 출력창</title>
</head>
<body>
<table border="1" align="center" >
<tr align="center" bgcolor="lightgreen">
<td width="7%"><b>아이디</b></td>
<td width="7%"><b>비밀번호</b></td>
<td width="5%" ><b>이름</b></td>
<td width="5%"><b>이메일</b></td>
</tr>
<c:forEach var="i" begin="0" end="2" step="1" >
<tr align="center">
<td>${membersList[i].id}</td>
<td>${membersList[i].pwd}</td>
<td>${membersList[i].name}</td>
<td>${membersList[i].email}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
4. http://localhost:8080/pro14/test03/member7.jsp로 요청하여 결과를 확인합니다.

5. 이번에는 <c:forEach>문은 items 속성에 memberList를 할당한 후 실행하여 자동으로 var의 member에 memberList의 MemberBean 객체가 차례대로 할당되도록 member8.jsp를 작성합니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.util.*, sec01.ex01.*"
pageEncoding="UTF-8"
isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
request.setCharacterEncoding("UTF-8");
List membersList = new ArrayList();
MemberBean m1 = new MemberBean("son","1234", "손흥민", "son@test.com");
MemberBean m2 = new MemberBean("ki","4321", "기성용", "ki@test.com");
MemberBean m3 = new MemberBean("park", "1212", "박지성", "park@test.com");
membersList.add(m1);
membersList.add(m2);
membersList.add(m3);
%>
<c:set var="membersList" value="<%= membersList%>" />
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 정보 출력 창</title>
</head>
<body>
<table border="1" align="center" >
<tr align="center" bgcolor="lightgreen">
<td width="7%"><b>아이디</b></td>
<td width="7%"><b>비밀번호</b></td>
<td width="5%" ><b>이름</b></td>
<td width="5%"><b>이메일</b></td>
</tr>
<c:forEach var="member" items="${membersList}" >
<tr align="center">
<td>${member.id}</td>
<td>${member.pwd}</td>
<td>${member.name}</td>
<td>${member.email}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
6. http://localhost:8090/pro14/test03/member4.jsp로 요청하여 결과를 확인합니다.

'프로그래밍 언어 > 자바 웹' 카테고리의 다른 글
| <c:redirect> 태그를 이용한 실습 (0) | 2026.02.28 |
|---|---|
| <c:url> 태그를 이용한 실습 (0) | 2026.02.25 |
| <c:choose> 태그를 이용한 실습 (0) | 2026.02.19 |
| <c:if> 태그를 이용한 실습 (0) | 2026.02.15 |
| <c:remove> 태그를 이용한 실습 (0) | 2026.02.12 |