<hide/>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>EL표현식 forEach 로 알아보기</title>
<style>
table {
border-collapse: collapse;
}
td { width: 300px; }
</style>
</head>
<body>
<br>
<table border="1">
<tr>
<td>
<h3> * 스크립틀릿 for문 </h3>
<% for(int i=0;i<5;i++){ %>
<h4> Hello~! 스크립트릿</h4>
<% } %>
</td>
<td>
<h3> * JSTL - forEach구문 </h3>
<c:forEach begin="1" end="5" step="1">
<h4> Hello~! JSTL forEach </h4>
</c:forEach>
</td>
</tr>
</table>
<br>
<hr>
<br>
<table border="1">
<tr>
<td>
<h3>* 1~9 홀수만 출력(forEach)</h3>
<!-- forEach문에서 반복에 사용되는 값은 var 변수를 사용해서 저장가능
값을 사용할때는 el 표현식을 사용해야한다(html) -->
<c:forEach begin="1" end="10" step="2" var="i">
${i } <br>
</c:forEach>
</td>
<td>
<h3>* 0~9 홀수만 출력(자바for)</h3>
<%
List<Integer> lst = new ArrayList<>();
for (int i = 0; i < 10; i++) {
lst.add(i);
}
// 자바 for문으로 0~9까지 리스트에 index = 값 동일하게 넣기
for (int i = 1; i < lst.size(); i+=2) {
out.println(lst.get(i) + "<br>");
}
%>
</td>
</tr>
</table>
<hr>
<h4>* 자바에도 foreach(향상된 for문)이 있다. </h4><br>
<pre>
for(Object a:lst){
out.println(a);
}
</pre>
<%
for(Object a:lst){
out.println(a);
}
// 영역객체에 저장
pageContext.setAttribute("lst", lst);
%>
<hr>
<h4>* el표현식으로 lst 출력</h4><br> ${lst }
<hr>
<h4>* el표현식 </h4><br>
'fromList'변수선언 'lst'를 'items'으로받음, 'forEach'를 이용하여 '홀수' 출력 <br>
<c:forEach var="fromList" items="${lst }" begin="1" end="10" step="2">
${fromList}
</c:forEach>
<br>
<hr>
<br>
<h4>* 'string'변수선언 / 값="a,b,c,d,e,f" '구분자'=',' </h4><br>
→ forTokens / delims 이용하여 출력(자바의 StringTokenizer와 비슷)<br>
<c:set var="string" value="a,b,c,d,e,f" scope="page" />
<c:forTokens var="token" items="${string}" delims=",">
${token}
</c:forTokens>
<br>
<hr>
<br>
<h4>* 'str'변수선언 / 값="부산광역시 동래구 사직동 사직 야구장 홍 길 동" '구분자'=' '(공백) </h4><br>
<c:set value="부산광역시 동래구 사직동 사직 야구장 홍 길 동" var="str"></c:set>
<c:forTokens items="${str }" delims=" " var="parse">
"${parse }"
</c:forTokens>
<hr>
</body>
</html>
↑ ↑ ↑ 원본 코드 전체 ㅡ 보시고 싶으시면 '펼치기' 클릭 !
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
↑ ↑ ↑ [EL표현식]과 [JSTL] 사용하기 위해 <html> 태그 시작전 추가하기 (맨위원본코드 3번째줄)
<table border="1">
<tr>
<td>
<h3> * 스크립틀릿 for문 </h3>
<% for(int i=0;i<5;i++){ %>
<h4> Hello~! 스크립트릿</h4>
<% } %>
</td>
<td>
<h3> * JSTL - forEach구문 </h3>
<c:forEach begin="1" end="5" step="1">
<h4> Hello~! JSTL forEach </h4>
</c:forEach>
</td>
</tr>
</table>
<% %> 스크립트릿 시작태그는 색깔이 바뀌는데 닫히는거는 색깔이 안바뀌고 있다.. 하이라이터를 바꿔야하나..
좌측이 자바<for>문 // 우측이 <c:forEach>문
처음 시작했을때는 이렇게 긴걸 왜써 이랬는데 아래내용을 진행하면서 써야겠구먼 이라는 생각이 들었다.
<table border="1">
<tr>
<td>
<h3>* 1~9 홀수만 출력(forEach)</h3>
<!-- forEach문에서 반복에 사용되는 값은 var 변수를 사용해서 저장가능
값을 사용할때는 el 표현식을 사용해야한다(html) -->
<c:forEach begin="1" end="10" step="2" var="i">
${i } <br>
</c:forEach>
</td>
<td>
<h3>* 0~9 홀수만 출력(자바for))</h3>
<%
List<Integer> lst = new ArrayList<>();
for (int i = 0; i < 10; i++) {
lst.add(i);
}
// 자바 for문으로 0~9까지 리스트에 index = 값 동일하게 넣기
for (int i = 1; i < lst.size(); i+=2) {
out.println(lst.get(i) + "<br>");
}
%>
</td>
</tr>
</table>
익숙해진 자바for문대신 <c:forEach> 적응기...
시작값 "1" (begin="1" step="2") 자바for문 'i=i+2'와 같은역할로 같은 출력을 보여줌
<h4>* 자바에도 foreach(향상된 for문)이 있다. </h4><br>
<pre>
for(Object a:lst){
out.println(a);
}
</pre>
<%
for(Object a:lst){
out.println(a);
}
// 영역객체에 저장
pageContext.setAttribute("lst", lst);
%>
영역객체 설정은 아래 el표현식 <c:forEach> 활용위해 설정
<h4>* el표현식으로 lst 출력</h4><br> ${lst }
<hr>
<h4>* el표현식 </h4><br>
'fromList'변수선언 'lst'를 'items'으로받음, 'forEach'를 이용하여 '홀수' 출력 <br>
<c:forEach var="fromList" items="${lst }" begin="1" end="10" step="2">
${fromList}
</c:forEach>
<br>
<hr>
<br>
<h4>* 'string'변수선언 / 값="a,b,c,d,e,f" '구분자'=',' </h4><br>
→ forTokens / delims 이용하여 출력(자바의 StringTokenizer와 비슷)<br>
<c:set var="string" value="a,b,c,d,e,f" scope="page" />
<c:forTokens var="token" items="${string}" delims=",">
${token}
</c:forTokens>
<br>
<hr>
<br>
<h4>* 'str'변수선언 / 값="부산광역시 동래구 사직동 사직 야구장 홍 길 동" '구분자'=' '(공백) </h4><br>
<c:set value="부산광역시 동래구 사직동 사직 야구장 홍 길 동" var="str"></c:set>
<c:forTokens items="${str }" delims=" " var="parse">
"${parse }"
</c:forTokens>
StringTokenizer stk = new StringTokenizer(str, " ");
delims는 자바의 StringTokenizer와 같은 기능을가진다. 물론 split() 메소드도 마찬가지이다.
var="str" 이 자바변수라면 위와같은 코드와 동일하다.
'ㆍSpring & JSP' 카테고리의 다른 글
[스프링]쇼핑몰 / 장바구니 만들기 첫페이지 기능구현 완성! (0) | 2021.09.10 |
---|---|
[spring/스프링] pom.xml 부터 DB디비/테스트 세팅 (0) | 2021.09.09 |
[jsp] fmt:formatDate 날짜/시간/화폐/소수점 포맷format (0) | 2021.09.05 |
[jsp][EL표현식/JSTL] 기본정리편 (0) | 2021.09.04 |
[JSP/서블릿]웹 개발에 필요한 이론 정리 파일 (0) | 2021.09.03 |