본문 바로가기

수업내용

[Day50][JSP] ForTokens / JSTL

Ⅰ. 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}&nbsp;${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>