본문 바로가기
study/Jsp

[Jsp] 17. EL 표현언어 (JSTL core 태그 : 반복관련 태그[forEach])

by 금이패런츠 2022. 4. 13.
728x90
반응형
<%@page import="java.util.Date"%>
<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%-- /src/main/webapp/jstl/jstlcoreex3.jsp --%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSTL core 태그 : 반복관련 태그</title>
</head>
<body>
<h3>반복관련 태그 : forEach</h3>
<c:forEach var="test" begin="1" end="10">
 ${test}&nbsp;&nbsp;&nbsp;
</c:forEach>

<h3>forEach 태그를 이용하여 1부터 100까지의 합구하기</h3>
<c:forEach var="i" begin="1" end="100">
	<c:set var="sum" value="${sum + i }" />
</c:forEach>
		1. 1부터 100까지의 합 : ${sum }<br> 
		2. 1부터 100까지의 합 : <c:out value="${sum } "/><br>
		
<h3>forEach 태그를 이용하여 1부터 100까지의 짝수합구하기</h3>
	<c:set var="sum" value="${0}" />
		<c:forEach var="i" begin="1" end="100">
			<c:if test="${i%2==0}">
				<c:set var="sum" value="${sum + i }" />
			</c:if>
 		</c:forEach>
 1. 1부터 100까지의 짝수 합 : ${sum }<br>
 
	<c:set var="sum" value="${0}" />
		<c:forEach var="i" begin="2" end="100" step="2">
			<c:set var="sum" value="${sum + i }" />
 		</c:forEach>
2. 1부터 100까지의 짝수 합 : ${sum }<br>

<h3>forEach 태그를 이용하여 1부터 100까지의 홀수합구하기</h3>
	<c:set var="sum" value="${0}" />
		<c:forEach var="i" begin="1" end="100">
			<c:if test="${i%2==1}">
				<c:set var="sum" value="${sum + i }" />
			</c:if>
 		</c:forEach>
 1. 1부터 100까지의 홀수 합 : ${sum }<br>
 
	<c:set var="sum" value="${0}" />
		<c:forEach var="i" begin="1" end="100" step="2">
			<c:set var="sum" value="${sum + i }" />
 		</c:forEach>
2. 1부터 100까지의 홀수 합 : ${sum }<br>
<br>
<h3>forEach태그를 이용하여 List 객체 출력하기</h3>
<%
	List<Integer> list = new ArrayList<>();
	for(int i=1; i<=10; i++) list.add(i*10);
	pageContext.setAttribute("list",list);
%>
<c:forEach var="i" items="${list}">
	${i}&nbsp;&nbsp;
</c:forEach><br>

<%--
	varStatus="변수명" => 반복중인 요소의 상태 정보 저장 
	stat.index : 0부터 시작
	stat.count : 1부터 시작
 --%>

<h3>forEach태그를 이용하여 List 객체 인덱스: 값 형태로 출력하기</h3>	
	<c:forEach var="i" items="${list}" varStatus="stat">
		${stat.index}:${i}&nbsp;&nbsp; <%--stat.index +1 로 변경가능 --%>
	</c:forEach><br>
	
	
<h3>forEach태그를 이용하여 List 객체 순서: 값 형태로 출력하기</h3>	
	<c:forEach var="i" items="${list}" varStatus="stat">
		${stat.count}:${i}&nbsp;&nbsp;
	</c:forEach><br>
	
<h3>문제 : 1부터 10까지를 3개씩 출력하기</h3>	
	<c:forEach var="i" items="${list}" varStatus="stat">
			<c:if test="${stat.index%3==0}"><br></c:if>
				${stat.count}:${i}&nbsp;&nbsp;&nbsp;
	</c:forEach><br>
	
<h3>forEach 태그를 이용하여 Map객체 출력하기</h3>
<%
	Map<String,Object> map = new HashMap<>();
	map.put("name","홍길동");
	map.put("today",new Date());
	map.put("age",20);
	map.put("list",list);
	pageContext.setAttribute("map", map);
%>	
<c:forEach var="m" items="${map}" varStatus="stat">
	${stat.count}:${m.key}=${m.value}<br>
</c:forEach>

<h3>Map객체를 EL로 출력하기</h3>
name = ${map.name }<br>
today = ${map.today }<br>
age = ${map.age }<br>
list = ${map.list }<br>

<h3>forEach 태그를 이용하여 배열객체 출력하기</h3>
<c:set var="arr" value="<%=new int[]{10,20,30,40,50} %>" />
	<c:forEach var="a" items="${arr }" varStatus="stat">
		arr[${stat.index }]=${a }<br>
	</c:forEach>
	
<h3>EL을 이용하여 배열과 리스트의 요소 한개 출력하기</h3>
list[0] : ${list[0]}<br>
arr[0] : ${arr[0]}<br>

<h3>forEach 태그를 이용하여 배열 객체의 두번째 요소부터 세번째 요소만 출력하기</h3>
	<c:forEach var="a" items="${arr }" varStatus="stat" begin="1" end="2">
		arr[${stat.index }]=${a }<br>
	</c:forEach>
	
<h3>forEach 태그를 이용하여 배열 객체의 짝수 인덱스 요소만 출력하기</h3>
	<c:forEach var="a" items="${arr }" varStatus="stat" step="2">
		arr[${stat.index }]=${a }<br>
	</c:forEach>
	
<h3>forEach 태그를 이용하여 배열 객체의 홀수 인덱스 요소만 출력하기</h3>
	<c:forEach var="a" items="${arr }" varStatus="stat" step="2" begin="1">
		arr[${stat.index }]=${a }<br>
	</c:forEach>
</body>
</html>
728x90
반응형