JSP

11.30.(수) JSP(9): JSTL(3)

콜라든포비 2022. 12. 5. 18:38

JSP Standard Tag Library

forEach태그

forEach태그는 반복문의 형태를 가지고 있다.

<c:forEach var="변수" begin="시작 숫자" end="끝 숫자" step="증가 폭"></c:forEach>

Java에서 배운 for문과 매우 유사한 모습이다.

<%@page import="java.util.HashMap"%>
<%@page import="java.util.List"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jstl03_forEachTag.jsp</title>
</head>
<body>
	<h1>forEach문 : 반복문</h1>
	<c:set var="times" value="8"/>
	<!-- 1~9까지 1씩 증가 -->
	<!-- step은 1이 default -->
	<c:forEach var="i" begin="1" end="9" step="1">
		${ times } * ${ i } = ${ times*i }<br>
	</c:forEach>
	
	<h2>JSP의 배열객체를 반복처리하기</h2>
	<%
		int data[] = {34,25,63,72,53,23,6,30};
	%>
	<c:forEach var="d" items="<%= data %>">
		[${ d }], 
	</c:forEach>
	
	<h2>컬렉션(List)을 이용한 반복문 사용</h2>
	<%
		List<String> list = new ArrayList<String>();
		list.add("Sangmin");
		list.add("Poby");
		list.add("Alex");
		list.add("Rowen");
	%>
	<ol>
		<c:forEach var="name" items="<%= list %>">
			<li>Name : ${ name }</li>
		</c:forEach>
	</ol>
	
	<h2>컬렉션(Map)을 이용한 반복문 사용</h2>
	<%
		HashMap<String, String> map = new HashMap<String, String>();
		map.put("name", "Daniel");
		map.put("tel", "010-1234-5678");
		map.put("addr", "Gangnam-gu, Seoul");
		map.put("email", "dan@naver.com");
	%>
	<ul>
		<c:forEach var="n" items="<%= map %>">
			<li>${ n.key } : ${ n.value }</li>
		</c:forEach>
	</ul>
</body>
</html>

JSP의 배열객체를 반복처리할때는 향상된 for문

for(자료형 변수명 : 배열명){}

과 비슷한 형태를 띈다. JSTL에선,

<c:forEach var="변수명" items="배열명"></c:forEach>

이렇게 반복처리해줄 수 있다. 배열뿐만 아니라 컬렉션에서도 적용시킬 수 있다.