Data Scientist 옌

매일 발전하는 IT문제해결사

국비지원교육 (22.01-22.07)/강의노트

22-06-03(금) 088일차 [EL, JSTL] EL, JSTL을 이용하여 데이터 표시

옌炎 2022. 6. 23. 21:29
728x90

수업내용


1교시 (09:30-10:20)

  • Client Side Script
    • HTML, CSS, JS
  • Server Side Script
    • JSP, Servlet
  • jasper.jar로 Client와 Server소통
  • 데이터 소통의 도구: plain text, xml, json

Clinent side에서 Server side 보낼 수 있는 방법

  • form tag
    • HTML로 통신
  • location.href
  • Ajax()

2교시 (10:30-11:20)

  • el_03.html
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>EL_3 Main</title>
</head>
<body>
	<form action="el_03.jsp" method="get">
		첫 번째 수 : <input type="number" name="num1" required="required" /><br>
		두 번째 수 : <input type="number" name="num2" required="required" /><br>
		<input type="submit" value="계산하기" />
		<input type="reset" value="초기화하기" />
	</form>
</body>
  • el_03.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%
	int num1 = Integer.parseInt(request.getParameter("num1"));
	int num2 = Integer.parseInt(request.getParameter("num2"));
%>

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>EL_03</title>
</head>
<body>
	<h3>EL_03</h3>
	<hr>
	<!-- el_03.jsp?num1=20&num2=10 -->
	num1의 값(JSP) : <%= num1 %><br>
	num2의 값(JSP) : <%= num2 %><br>
	<br>
	
	num1의 값(EL) : ${param.num1 }<br> <!-- ${num1}은 바인딩 객체가 없어서 출력되지 않는다 -->
	num2의 값(EL) : ${param.num2 }<br> <!-- request.getParameter()로 가져온 객체가 없어도 출력된다 -->
	num1 + num2(잘못된 코드) : ${param.num1 } + ${param.num2 }<br>
	<br>
	
	[사칙 연산]<br>
	num1 + num2 : ${param.num1 + param.num2 }<br>
	num1 + num2 : ${param.num1 - param.num2 }<br>
	num1 * num2 : ${param.num1 * param.num2 }<br>
	num1 / num2 : ${param.num1 % param.num2 }<br>
	<br>
	
	[비교 연산]<br>
	num1이 더 큽니까? : ${param.num1 - param.num2 > 0 }<br>
	num1이 더 큽니까? : ${param.num1 > param.num2 }<br>
	num1이 더 큽니까? : ${param.num1 gt param.num2 }<br>
	num1이 더 큽니까? : ${param.num1 gt param.num2 ? "예" : "아니오" }<br>
	<br>
	
	num1과 num2가 같습니까? : ${param.num1 == param.num2 }<br>
	num1과 num2가 같습니까? : ${param.num1 eq param.num2 }<br>
	
	<!-- 
		> 	: gt
		>= 	: ge
		== 	: eq
		<= 	: le
		< 	: lt
		!= 	: ne
	 -->
</body>
</html>

  • JstlMemberVO.java
package a.b.c.test.jstl;

public class JstlMemberVO {

	private String irum;
	private String id;
	private String pw;
	private String age;
	private String addr;
	private String tel;
	
	public JstlMemberVO() {
		
	}

	public JstlMemberVO(String irum, String id, String pw, String age, String addr, String tel) {
		
		this.irum = irum;
		this.id = id;
		this.pw = pw;
		this.age = age;
		this.addr = addr;
		this.tel = tel;
	}
	
	public String getIrum() {
		return irum;
	}
	public void setIrum(String irum) {
		this.irum = irum;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPw() {
		return pw;
	}
	public void setPw(String pw) {
		this.pw = pw;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
	public String getAddr() {
		return addr;
	}
	public void setAddr(String addr) {
		this.addr = addr;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
}

3교시 (11:30-12:20)

  • el_04.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ page import="a.b.c.test.jstl.JstlMemberVO" %>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>EL_04</title>
</head>
<body>
	<h3>EL_04</h3>
	<hr>
	
	<!-- el_04.jsp?str1=korea&str2=kor -->
	
	입력 문자열 str1 : ${param.str1 }<br>
	입력 문자열 str2 : ${param.str2 }<br>
	문자열 대소 비교 : ${param.str1.compareTo(param.str2) > 0 ? param.str1 : param.str2 }<br>
	두 문자열이 같나요? : ${param.str1 eq param.str2 ? "예" : "아니오" }<br>
	<br><br><br>
	
	<%
		String str1 = request.getParameter("str1");
		String str2 = request.getParameter("str2");
		out.println("입력 문자열 str1 = " + str1 + "<br />");
		out.println("입력 문자열 str2 = " + str2 + "<br />");
		out.println("두 문자열이 같나요? : " + (str1.equals(str2) ? "예" : "아니오"));
	%>
	<br><br><br>
	입력 문자열 str1 : <%= str1 %><br>
	입력 문자열 str2 : <%= str2 %><br>
	두 문자열이 같나요? : <%= (str1.equals(str2) ? "예" : "아니오") %>
</body>
</html>

  • el_05.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ page import="a.b.c.test.jstl.JstlMemberVO" %>
<%@ page import="java.util.ArrayList" %>

<%
	// study[] 배열을 초기화 → 바인딩(연결) 객체 → el_06.jsp 출력
	String[] study = {"JAVA", "View", "SQL", "Servlet/JSP/SPRING", "Android", "IoT", "Project"};
	request.setAttribute("study", study);
	
	// ArrayList<> 배열을 생성하고 초기화 → 바인딩(연결) 객체 → el_06.jsp 출력
	ArrayList<String> list = new ArrayList<>();
	list.add("오렌지");
	list.add("바나나");
	list.add("사과");
	list.add("멜론");
	list.add("레몬");
	request.setAttribute("list", list);
	
	// MemberVO 객체를 생성하고 초기화 → 바인딩(연결) 객체 → el_06.jsp 출력
	JstlMemberVO mvo = new JstlMemberVO();
	mvo.setIrum("홍길동");
	mvo.setId("HKD");
	mvo.setPw("1234");
	mvo.setAge("27");
	mvo.setAddr("부천시 춘의동");
	mvo.setTel("01-123-4567");
	request.setAttribute("mvo", mvo);
	
	// ArrayList<> 구조에 MemberVO 객체 배열 생성 → 바인딩(연결) 객체 → el_06.jsp 출력
	ArrayList<JstlMemberVO> mlist = new ArrayList<>();
	mlist.add(new JstlMemberVO("홍길동1", "hong1", "1234", "11", "광주시", "010-1111-1111"));
	mlist.add(new JstlMemberVO("홍길동2", "hong2", "1234", "22", "광주시", "010-1111-1111"));
	mlist.add(new JstlMemberVO("홍길동3", "hong3", "1234", "33", "광주시", "010-1111-1111"));
	mlist.add(new JstlMemberVO("홍길동4", "hong4", "1234", "44", "광주시", "010-1111-1111"));
	mlist.add(new JstlMemberVO("홍길동5", "hong5", "1234", "55", "광주시", "010-1111-1111"));
	request.setAttribute("mlist", mlist);
%>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>EL_05 Main</title>
</head>
<body>
	<h3>el_05.jsp</h3>
	<hr>
</body>
</html>
<jsp:include page="el_06.jsp" />

4교시 (12:30-13:20)

  • el_06.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ page import="java.util.ArrayList" %>

<%
	request.setCharacterEncoding("UTF-8");
	// Object 타입을 String[] 타입으로 캐스팅해준다.
	String[] studyJSP = (String[]) request.getAttribute("study");
	ArrayList<String> listJSP = (ArrayList<String>) request.getAttribute("list");
%>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>EL_06</title>
</head>
<body>
	<h3>EL_06</h3>
	<hr>
	[배열을 받는 방법(JSP) - ①]<br>
	<% for (int i=0; i < studyJSP.length; i++) { %>
		studyJSP[] 배열의 <%= i %>번지(인덱스) 값 : <%= studyJSP[i] %><br>
	<% } %>
	<br>
	
	[배열을 받는 방법](JSP) - ②]<br>
	<% 
		for (int i=0; i < studyJSP.length; i++) {
			out.println("studyJSP[] 배열의 " + i + "번지(인덱스) 값 : " + studyJSP[i] + "<br />");
	 	}
	 %>
	<br>
	
	[배열을 받는 방법(EL)]<br>
	<!-- study[]를 페이지에 작성하진 않지만, 05에서 넘어온 study[]에 접근할 수 있다 -->
	study[] 배열의 0번지(인덱스) 값 : ${study[0] }<br>
	study[] 배열의 1번지(인덱스) 값 : ${study[1] }<br>
	study[] 배열의 2번지(인덱스) 값 : ${study[2] }<br>
	study[] 배열의 3번지(인덱스) 값 : ${study[3] }<br>
	study[] 배열의 4번지(인덱스) 값 : ${study[4] }<br>
	study[] 배열의 5번지(인덱스) 값 : ${study[5] }<br>
	study[] 배열의 6번지(인덱스) 값 : ${study[6] }<br>
	<br><hr><br>
	
	[리스트를 받는 방법(JSP)]<br>
	<%
		for (int i=0; i < listJSP.size(); i++) {
			out.println("ArrayList 배열의 " + i + "번지 값 : " + listJSP.get(i) + "<br />");
		}
	%>
	<br>
	
	[리스트를 받는 방법(EL)]<br>
	ArrayList 배열의 0번지 값 : ${list[0] }<br>
	ArrayList 배열의 1번지 값 : ${list[1] }<br>
	ArrayList 배열의 2번지 값 : ${list[2] }<br>
	ArrayList 배열의 3번지 값 : ${list[3] }<br>
	ArrayList 배열의 4번지 값 : ${list[4] }<br>
	<br><hr><br>
	
	[바인딩 객체(dto)를 받는 방법(EL)]<br>
	이름 : ${mvo.irum }<br>
	아이디 : ${mvo.id }<br>
	비밀번호 : ${mvo.pw }<br>
	나이 : ${mvo.age }<br>
	주소 : ${mvo.addr }<br>
	전화번호 : ${mvo.tel }<br>
	<br><hr><br>
	
	[리스트 구조에 객체가 저장된 객체 배열을 받는 방법]<br>
	mlist 0번지 값 : ${mlist[0].irum }, ${mlist[0].id }, ${mlist[0].pw },
				  ${mlist[0].age }, ${mlist[0].addr }, ${mlist[0].tel }<br>
	mlist 4번지 값 : ${mlist[4].irum }, ${mlist[4].id }, ${mlist[4].pw },
				  ${mlist[4].age }, ${mlist[4].addr }, ${mlist[4].tel }<br>
</body>
</html>

  • [JSP.pdf 196 ~ 300p] JSTL 설명
    • JSTL if문에는 else 문이 없다.

5교시 (14:30-15:20)

  • jstl_01.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<!-- JSTL core 문을 사용하기 위해서는 반드시 문서 상단에 기술 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!-- 라이브러리 참조 
http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
https://mvnrepository.com/
 -->
 
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>JSTL_01</title>
</head>
<body>
	<h3>JSTL 01</h3>
	<hr>
	1. 기본 프로그래밍 Tag(변수, 배열, if, for, switch-case 등) ▶ core<br>
	<%
		int num = 100;
	%>
	JAVA num : <%= num %><br>
	
	<%-- JSTL 변수 선언 : <c:set ~~> --%>
	<c:set var="su1" value="200" />
	JSTL su1 : ${su1 }<br>
	
	<%-- JAVA num 값을 JSTL su2 할당 --%>
	<c:set var="su2" value="<%=num %>" />
	JSTL su2 : ${su2 }<br>
	
	<%-- JSTL su1 값과 su2 값을 더한 값 : result --%>
	<c:set var="result" value="${su1 + su2 }" />
	JSTL result : ${result }
</body>
</html>

  • jstl_02.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<!-- JSTL core 문을 사용하기 위해서는 반드시 문서 상단에 기술 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>JSTL 02</title>
</head>
<body>
	<h3>JSTL 02</h3>
	<hr>
	<!-- JSTL core 변수를 선언한 후 jstl_03.jsp로 넘기자 : forward() -->
	<c:set var="code" value="abc001" scope="request" />
	<c:set var="name" value="컴퓨터" scope="request" />
	<c:set var="price" value="5000000" scope="request" />
	<jsp:forward page="jstl_03.jsp"/>
</body>
</html>
  • jstl_03.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<!-- JSTL core 문을 사용하기 위해서는 반드시 문서 상단에 기술 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>JSTL_03</title>
</head>
<body>
	<h3>JSTL 03</h3>
	<hr>
	코드 : ${code }<br>
	제품명 : ${name }<br>
	가격 : ${price }<br>
</body>
</html>

6교시 (15:30-16:20)

  • jstl_04.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<!-- JSTL core문을 사용하기 위해서는 반드시 문서 상단에 기술 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>JSTL 04</title>
</head>
<body>
	<h3>JSTL 04</h3>
	<hr>
	<!-- jstl_04.jsp?num1=100&num2=50 -->
	<!-- param : el 문법 : request.getParameter("num1") -->
	첫 번째 수: ${param.num1 }<br>
	두 번째 수: ${param.num2 }<br>
	<br>
	<%--
		<c:if test="조건식">실행문</c:if>
	 --%>
	최댓값 : <c:if test="${param.num1 - param.num2 > 0}">
			${param.num1 }
		  </c:if>
		  <c:if test="${param.num1 - param.num2 < 0}">
		  	${param.num2 }
		  </c:if>
	<br>
	최솟값 : <c:if test="${param.num1 - param.num2 > 0 }">
		  	${param.num2 }
		  </c:if>
		  <c:if test="${param.num1 - param.num2 < 0 }">
		  	${param.num1 }
		  </c:if>
</body>
</html>

  • jstl_05.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<!-- JSTL core문을 사용하기 위해서는 반드시 문서 상단에 기술 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>JSTL 05</title>
</head>
<body>
	<h3>JSTL 05</h3>
	<hr>
	<!-- jstl_05.jsp?num=일 // jstl_05.jsp?num=2 // jstl_06.jsp?num=3 -->
	<%
		int num = Integer.parseInt(request.getParameter("num"));
		if(num == 1) {
			out.println("처음 뵙겠습니다. (java:if)");	
		} else if(num == 2) {
			out.println("안녕하세요. (java:if)");
		} else {
			out.println("반갑습니다. (java:if)");
		}
	%>
	<br><br>
	<c:if test="${param.num == 1 }">처음 뵙겠습니다. (c:if)</c:if>
	<c:if test="${param.num == 2 }">안녕하세요. (c:if)</c:if>
	<c:if test="${param.num == 3 }">반값습니다. (c:if)</c:if>
	<br><br>
	
	<%-- 
		JAVA : switch(비교값) case 기준값 default
		JSTL core : <c:choose>
						<c:when test="조건식">실행문</c:when>
						<c:when test="조건식">실행문</c:when>
						<c:otherwise>실행문</c:otherwise>
					</c:choose>
	--%>
	
	<%
		switch(num) {
			case 1 :
				out.println("처음 뵙겠습니다. (java:switch)");
				break;
			case 2 :
				out.println("안녕하세요. (java.switch)");
				break;
			default :
				out.println("반갑습니다. (java.switch)");
				break;
		}
	%>
	<br><br>
	<c:choose>
		<c:when test="${param.num == 1 }">처음 뵙겠습니다. (c:choose)</c:when>
		<c:when test="${param.num == 2 }">안녕하세요. (c:choose)</c:when>
		<c:otherwise>반갑습니다. (c:choose)</c:otherwise>
	</c:choose>
</body>
</html>

7교시 (16:30-17:20)

  • jstl_06.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ page import="a.b.c.test.jstl.JstlMemberVO" %>
<%@ page import="java.util.ArrayList" %>

<!-- JSTL core문을 사용하기 위해서는 반드시 문서 상단에 기술 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>JSTL 06</title>
	<hr>
	<%--
		○ JAVA 반복문 : for, while, do~while
		○ JSTL 반목문 : <c:forEach>실행문</c:forEach>
			▲ <c:forEach var="반복변수명" begin="초기값" end="최종값" step="증감값">실행문</c:forEach>
	 --%>
	 ○ JAVA 반복문(for)<br>
	 <%
	 	for (int i=1; i <= 7; i++) {
	 		out.println("<font size=" + i + ">안녕하세요</font><br />");
	 	}
	 %>
	 <br><br>
	 
	 ○ JSTL 반복문(c:forEach)<br>
	 <c:forEach var="i" begin="1" end="7"><!-- step의 값이 1이라면 생략가능하다. -->
	 	<font size="${i }">반갑습니다.</font><br>
	 </c:forEach>
	 <br><br>
	 <c:forEach var="i" begin="1" end="7" step="2">
	 	<font size="${i }">반갑습니다.</font><br>
	 </c:forEach>
</head>
<body>

  • jstl_07.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<!-- JSTL core 문을 사용하기 위해서는 반드시 문서 상단에 기술 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%
	String[] fruit = {"사과", "멜론", "오렌지", "바나나", "파인애플"};
	pageContext.setAttribute("fruit", fruit); // 현재 페이지에서 사용할 바인딩 객체 생성
	// fruit가 다른 페이지에서 넘겨받았으면 바인딩 객체를 생성할 필요가 없으나
	// 현재 페이지에서 만들었으므로 EL 표기법에서 사용하기 위해 객체를 생성할 필요가 없다.
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSTL 07</title>
</head>
<body>
	<h3>JSTL 07</h3>
	<hr>
	○ JAVA 반복문(배열)<br>
	<ul>
		<%
			for (int i=0; i < fruit.length; i++) {
				out.println("<li>" + fruit[i] + "</li>");
			}
		%>
	</ul>
	
	<%--
		JSTL 반복문 : <c:forEach>실행문</c:forEach>
		▶ <c:forEach var="반복변수명" items="${배열명}">실행문</c:forEach>
	 --%>
	 ○ JSTL 반복문(배열)<br>
	 <ul>
	 	<c:forEach var="i" items="${fruit }">
	 		<li>${i }</li>
	 	</c:forEach>
	 </ul>
</body>
</html>

  • jstl_08.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ page import="java.util.ArrayList" %>

<!--  JSTL core문을 사용하기 위해서는 반드시 문서 상단에 기술 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%
	ArrayList<String> list = new ArrayList<String>();
	list.add("사과");
	list.add("멜론");
	list.add("오렌지");
	list.add("바나나");
	list.add("파인애플");
	
	pageContext.setAttribute("list", list); // 현재 페이지에서 EL 문법에 활용 가능
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSTL 08</title>
</head>
<body>
	<h3>JSTL 08</h3>
	<hr>
	○ JAVA for<br>
	<ul>
		<%
			for (int i=0; i < list.size(); i++) {
				out.println("<li>" + list.get(i) + "</li>");
			}
		%>
	</ul>
	<hr>
	○ JAVA forEach<br>
	<ul>
		<%
			for (String str : list) {
				out.println("<li>" + str + "</li>");
			}
		%>
	</ul>
	<hr>
	○ EL 표기법<br>
	<ul>
		<li>${list[0] }</li>
		<li>${list[1] }</li>
		<li>${list[2] }</li>
		<li>${list[3] }</li>
		<li>${list[4] }</li>
	</ul>
	<hr>
	○ JSTL core<br>
	<ul>
		<c:forEach var="i" items="${list }">
			<li>${i }</li>
		</c:forEach>
	</ul>
</body>
</html>

  • jstl_09.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ page import="a.b.c.test.jstl.JstlMemberVO" %>
<%@ page import="java.util.ArrayList" %>

<!--  JSTL core문을 사용하기 위해서는 반드시 문서 상단에 기술 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%
	ArrayList<JstlMemberVO> list = new ArrayList<>();
	list.add(new JstlMemberVO("홍길동", "hong1", "1234", "11", "서울특별시", "010-111-1111"));
	list.add(new JstlMemberVO("홍길동", "hong2", "1234", "22", "서울특별시", "010-111-1111"));
	list.add(new JstlMemberVO("홍길동", "hong3", "1234", "33", "서울특별시", "010-111-1111"));
	list.add(new JstlMemberVO("홍길동", "hong4", "1234", "44", "서울특별시", "010-111-1111"));
	list.add(new JstlMemberVO("홍길동", "hong5", "1234", "55", "서울특별시", "010-111-1111"));

	pageContext.setAttribute("list", list);
%>

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>JSTL 09</title>
</head>
<body>
	<h3>JSTL 09</h3>
	<hr>
	○ JAVA for<br>
	<ul>
		<%
			for (int i=0; i < list.size(); i++) {
				out.println("<li>" + list.get(i).getIrum());
				out.println(list.get(i).getId());
				out.println(list.get(i).getPw());
				out.println(list.get(i).getAge());
				out.println(list.get(i).getAddr());
				out.println(list.get(i).getTel() + "</li>");
			}
		%>
	</ul>
	<hr>
	<ul>
		<%
			for (JstlMemberVO mvo : list) {
				out.println("<li>");
				out.println(mvo.getIrum());
				out.println(mvo.getId());
				out.println(mvo.getPw());
				out.println(mvo.getAge());
				out.println(mvo.getAddr());
				out.println(mvo.getTel());
				out.println("</li>");
			}
		%>
	</ul>
	<hr>
	○ EL 표기법<br>
	<ul>
		<li>${list[0].irum } ${list[0].id } ${list[0].pw } ${list[0].age } ${list[0].addr } ${list[0].tel }</li>
		<li>${list[1].irum } ${list[1].id } ${list[1].pw } ${list[1].age } ${list[1].addr } ${list[1].tel }</li>
		<li>${list[2].irum } ${list[2].id } ${list[2].pw } ${list[2].age } ${list[2].addr } ${list[2].tel }</li>
		<li>${list[3].irum } ${list[3].id } ${list[3].pw } ${list[3].age } ${list[3].addr } ${list[3].tel }</li>
		<li>${list[4].irum } ${list[4].id } ${list[4].pw } ${list[4].age } ${list[4].addr } ${list[4].tel }</li>
	</ul>
	<hr>
	○ JSTL core<br>
	<ul>
		<c:forEach var="i" items="${list }">
			<li>${i.irum } ${i.id  } ${i.pw  } ${i.age  } ${i.addr } ${i.tel  }</li>
		</c:forEach>
	</ul>
</body>
</html>

8교시 (17:30-18:30)

  • 스프링 코드 버전업하기
  • 팀 미팅

Notes

  • SpringDBLink 해오기

728x90