Ⅰ. ForTokens
-- Folder(chap08JSTL)에 JSP File(07ForTokensData, 07ForTokensView) 생성
chap08JSTL 07ForTokensData.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String names = "한석규,두석규,세석규,네석규,오석규";
request.setAttribute("names", names);
RequestDispatcher dispatcher = request.getRequestDispatcher("07ForTokensView.jsp");
dispatcher.forward(request, response);
%>
chap08JSTL 07ForTokensView.jsp
<%@ 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>
<html>
<head>
<meta charset="UTF-8">
<title>회원명단 출력하기</title>
</head>
<body>
<h2>회원명단</h2>
<ol>
<c:forTokens var="irum" items="${names}" delims=",">
<li>${irum}</li>
</c:forTokens>
</ol>
</body>
</html>
chap08JSTL 07ForTokensData.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String friends = "일지매,이지매.삼지매/사지매,오지매";
request.setAttribute("friends", friends);
RequestDispatcher dispatcher = request.getRequestDispatcher("07ForTokensView.jsp");
dispatcher.forward(request, response);
%>
chap08JSTL 07ForTokensView.jsp
<%@ 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>
<html>
<head>
<meta charset="UTF-8">
<title>회원명단 출력하기</title>
</head>
<body>
<h2>친구명단</h2>
<ol>
<c:forTokens var="irum" items="${friends}" delims=",./">
<li>${irum}</li>
</c:forTokens>
</ol>
</body>
</html>
-- status.index : 0부터 순서대로 숫자를 출력해 준다.
-- status.count : 1부터 순서대로 숫자를 출력해 준다. (반복되어지는 횟수)
chap08JSTL 06ForEachData.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String[] bookArr = {"어린왕자","라푼젤","신데렐라","인어공주","백설공주"};
request.setAttribute("bookArr", bookArr);
RequestDispatcher dispatcher = request.getRequestDispatcher("06ForEach3View.jsp");
dispatcher.forward(request, response);
%>
chap08JSTL 06ForEachView.jsp
<%@ 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>
<html>
<head>
<meta charset="UTF-8">
<title>회원명단, 도서명 출력하기</title>
</head>
<body>
<h2>도서리스트(JSTL을 사용한 것)</h2>
<c:if test="${!empty bookArr}">
<ul style='list-style-type: none;'>
<c:forEach var="book" items="${bookArr}" varStatus="status">
<li>${status.count} ${book}</li>
</c:forEach>
</ul>
</c:if>
<c:if test="${empty bookArr}">
도서리스트가 존재하지 않습니다.
</c:if>
</body>
</html>
-- Package(begin.chap08.oracle.controller, begin.chap08.oracle.model) 생성
-- Package(begin.chap06.oracle.controller)의 File 모두 복사하여 붙여넣기
-- Package(begin.chap06.oracle.model)의 File 모두 복사하여 붙여넣기
-- WEB-INF - Folder(chap08Oracle) 생성
-- Folder(chap06Oracle)의 JSP File(memberRegisterForm) 복사하여 붙여넣기
-- WEB-INF내의 File은 Servlet을 통해서만 구동되어진다.
begin.chap08.oracle.controller MemberRegisterForm
RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/chap08Oracle/memberRegisterForm.jsp");
-- Folder(chap06Oracle)의 File(anotherError, memberDetail, memberList, sqlError) 복사하여 Folder(chap08Oracle)에 붙여넣기
chap08Oracle memberList.jsp
<tbody>
<c:if test="${!empty memberList}">
<c:forEach var="memberVO" items="${memberList}" varStatus="status">
<tr>
<td>${status.count}</td>
<td id="userid">${memberVO.userid}</td>
<td>${memberVO.name}</td>
<td>${memberVO.email}</td>
<td>${memberVO.registerday}</td>
</tr>
</c:forEach>
</c:if>
<c:if test="${!empty memberList}">
<tr>
<td colspan="5">가입된 회원이 없습니다.</td>
</tr>
</c:if>
</tbody>
▷ 첫 번째 방법
chap08Oracle memberList.jsp javascript
<script type="text/javascript" src="<%= ctxPath%>/js/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
$(function(){
$("tr").bind("click",function(){
var userid = $(this).find("#userid").text();
// console.log(userid);
location.href="detailMemberInfo3.do?userid="+userid;
});
});
</script>
▷ 두 번째 방법
chap08Oracle memberList.jsp javascript
<script type="text/javascript">
$(function(){
$("tr").bind("click",function(){
var userid = $(this).children(":nth-child(2)").text();
// console.log(userid);
location.href="detailMemberInfo3.do?userid="+userid;
});
});
▷ 세 번째 방법
chap08Oracle memberList.jsp javascript
<script type="text/javascript">
$(function(){
$("tr").bind("click",function(){
var userid = $(this).find(":nth-child(2)").text();
// console.log(userid);
location.href="detailMemberInfo3.do?userid="+userid;
});
});
문제 ▷▷ chap09를 만들어 chap07도 JAVA 대신 JSTL을 사용해 보자.
-- chap07 복사하여 chap09 생성
-- 페이지 이동 시 URL을 알맞게 변경해 준다.
chap09Oracle MemberList4.jsp
<tbody>
<c:if test="${!empty memberList}">
<c:forEach var="memberMap" items="${memberList}" varStatus="status">
<tr>
<td>${status.count}</td>
<td>${memberMap.userid}</td>
<td>${memberMap.name}</td>
<td>${memberMap.email}</td>
<td>${memberMap.registerday}</td>
</tr>
</c:forEach>
</c:if>
<c:if test="${empty memberList}">
<tr>
<td colspan="5">가입된 회원이 없습니다.</td>
</tr>
</c:if>
</tbody>
chap09Oracle memberDetail4.jsp
<div id="container">
<h2>회원상세정보4 조회 결과</h2>
<c:if test="${!empty map}">
<ul>
<li>
<label>회원아이디</label>
<span>${map.userid}</span>
</li>
<li>
<label>암호</label>
<span>${map.passwd}</span>
</li>
<li>
<label>회원명</label>
<span>${map.name}</span>
</li>
<li>
<label>이메일</label>
<span>${map.email}</span>
</li>
<li>
<label>전화번호</label>
<span>${map.tel}</span>
</li>
<li>
<label>주민번호</label>
<span>${map.jubun}</span>
</li>
<li>
<label>성별</label>
<span>${map.gender}</span>
</li>
<li>
<label>나이</label>
<span>${map.age}</span>
</li>
<li>
<label>학력</label>
<span>${map.school}</span>
</li>
<li>
<label>관심분야</label>
<span>${map.interest}</span>
</li>
<li>
<label>가입일자</label>
<span>${map.registerday}</span>
</li>
</ul>
</c:if>
<c:if test="${empty map}">
존재하지 않는 회원입니다.
</c:if>
<button type="button" onclick="javascript:location.href='memberList4.do'">회원목록</button>
</div>