! 배워가고 있는 주인장이 쓴 글이니 정보의 정확성에 유의하시기 바랍니다 !
WebApp22
Gugudan.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
request.setCharacterEncoding("UTF-8");
String cp = request.getContextPath();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Gugudan.jsp</title>
<link rel="stylesheet" type="text/CSS" href="css/main.css">
<!-- <style type="text/css">
body {text-align: center;}
</style> -->
</head>
<body>
<!-- 원하는 단을 사용자로부터 입력받아 해당 구구단을 출력하는 JSP 페이지를 구성한다.
단, JSTL Core if 문과 forEach 구문을 활용한다. -->
<div>
<h1>JSTL 코어(Core)를 활용한 구구단 출력</h1>
<hr>
</div>
<div>
<form action="">
원하는 단 입력 <input type="text" name="dan" class="txt"><br><br>
<button type="submit" class="btn">결과 확인</button>
</form>
</div>
<div>
<!-- 결과 처리 -->
<%--내가
<c:if test="${!empty param.dan }">
[ ${param.dan } 단 ]<br><br>
<c:forEach var="a" begin="1" end="9" step="1">
${param.dan} * ${a} = ${param.dan*a }<br>
</c:forEach>
</c:if>
--%>
<c:if test="${!empty param.dan }">
<ul>
<c:forEach var="su" begin="1" end="9" step="1">
<li>
${param.dan} * ${su } = ${param.dan*su }
</li>
</c:forEach>
</ul>
</c:if>
</div>
</body>
</html>
Test8.jsp
: JSTL 코어(Core) choose문 실습 (3과 4의 배수인지 확인하는 실습)
<c:if test=" "></c:if> → if문이지만 else문이 없음
이를 보완하기 위해
<c:choose>
<c:when test="if문1 ">
</c:when>
<c:when test="if문2">
</c:when>
<c:otherwise test="else문">
</c:otherwise>
</c:choose>
이용.
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
request.setCharacterEncoding("UTF-8");
String cp = request.getContextPath();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test8.jsp</title>
<link rel="stylesheet" type="text/CSS" href="css/main.css">
</head>
<body>
<div>
<h1>JSTL 코어(Core) choose문 실습</h1>
<h2>배수 확인하기</h2>
<hr>
</div>
<div>
<form>
정수 <input type="text" name="su" class="txt"><br><br>
<button type="submit" class="btn">결과 확인</button>
</form>
</div>
<br>
<div>
<!-- 결과 확인 -->
<c:if test="${!empty param.su }">
<%-- ${param.su } --%>
<%-- c:choose ~ / c:choose --%>
<%--JSTL Core 에서 if ~ else 를 대신할 수 있는 구문 --%>
<c:choose>
<c:when test="${param.su%3==0 && param.su%4==0 }">
<p>${param.su }은(는) 3과 4의 배수~!!!</p>
</c:when>
<c:when test="${param.su%3==0 }">
<p>${param.su }은(는) 3의 배수~!!!</p>
</c:when>
<c:when test="${param.su%4==0 }">
<p>${param.su }은(는) 4의 배수~!!!</p>
</c:when>
<%-- else --%>
<c:otherwise>
<p>${param.su }은(는) 3과 4의 배수가 아님~!!!</p>
</c:otherwise>
</c:choose>
</c:if>
</div>
</body>
</html>
Test9.jsp
: JSTL 코어(Core) import문 실습
『c:import』는 URL 처리에 관여하며, URL을 활용하여 다른 자원이 결과를 삽입할 때 사용한다.
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
request.setCharacterEncoding("UTF-8");
String cp = request.getContextPath();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test9.jsp</title>
<link rel="stylesheet" type="text/CSS" href="<%=cp %>/css/main.css">
</head>
<body>
<div>
<h1>JSTL 코어(Core) import문 실습</h1>
<hr>
</div>
<div>
<p>『c:import』는 URL 처리에 관여하며,
URL을 활용하여 다른 자원이 결과를 삽입할 때 사용한다.</p>
</div>
<br>
<!-- 변수 지정 -->
<c:set var="url" value="Gugudan.jsp"></c:set>
<!-- import 를 수행하여 해당 페이지가 필요로하는 파라미터 넘기기 -->
<c:import url="${url }" var="impt">
<c:param name="dan" value="7"></c:param>
</c:import>
<!-- 결과 화면 출력 -->
<c:out value="${impt }"></c:out>
<!-- → 결과 화면 출력 과정에서 HTML 코드를 그대로 출력하는 구문 -->
<!-- 이 때, 『escapeXml』 속성의 기본값(default)은 true 로 설정되어 있다. -->
<!-- 결과 화면 출력 -->
<c:out value="${impt }" escapeXml="false"></c:out>
</body>
</html>
MemberInsertForm.jsp
: 5명의 정보 입력 받기
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
request.setCharacterEncoding("UTF-8");
String cp = request.getContextPath();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MemberInsertForm.jsp</title>
<link rel="stylesheet" type="text/CSS" href="<%=cp %>/css/main.css">
<style type="text/css">
td {text-align: center;}
</style>
</head>
<body>
<div>
<h2>JSTL 코어(Core)를 활용한 회원정보 입력</h2>
<hr>
</div>
<!-- 내가 -->
<%-- <div>
<form action="MemberInsert.jsp" method="post">
<!-- (이름, 전화번호, 주소) * 5명 분 입력 폼 구성 -->
<!-- → 각각의 입력 컨트롤 15개 구성 -->
<!-- → submit 액션 처리 -->
<c:forEach var="su" begin="1" end="5" step="1">
<h3>${su }번 회원 정보 입력</h3>
이름 <input type="text" name="name${su }" class="txt">
전화번호 <input type="text" name="tel${su }" class="txt">
주소 <input type="text" name="addr${su }" class="txt">
<br><br>
</c:forEach>
<br><br>
<button type="submit" name="btn" class="btn" style="font-weight:bold; font-size:12pt;">입력</button>
</form>
</div> --%>
<!-- 함께 -->
<div>
<form action="MemberInsert.jsp" method="post">
<!-- (이름, 전화번호, 주소) * 5명 분 입력 폼 구성 -->
<!-- → 각각의 입력 컨트롤 15개 구성 -->
<!-- → submit 액션 처리 -->
<table class="table">
<tr>
<th>이름
<td>
<!-- <input type="text" name="name1">
<input type="text" name="name2">
<input type="text" name="name3">
<input type="text" name="name4">
<input type="text" name="name5"> -->
<c:set var="i" value="1"></c:set>
<c:forEach var="a" begin="1" end="5" step="1">
<%-- <input type="text" name="name${a }"> --%>
<input type="text" name="name${i }">
<c:set var="i" value="${i+1 }"></c:set>
</c:forEach>
</td>
</th>
</tr>
<tr>
<th>전화번호
<td>
<!-- <input type="text" name="tel1">
<input type="text" name="tel2">
<input type="text" name="tel3">
<input type="text" name="tel4">
<input type="text" name="tel5"> -->
<c:set var="i" value="1"></c:set>
<c:forEach var="a" begin="1" end="5" step="1">
<input type="text" name="tel${i }">
<c:set var="i" value="${i+1 }"></c:set>
</c:forEach>
</td>
</th>
</tr>
<tr>
<th>주소
<td>
<!-- <input type="text" name="addr1">
<input type="text" name="addr2">
<input type="text" name="addr3">
<input type="text" name="addr4">
<input type="text" name="addr5"> -->
<c:set var="i" value="1"></c:set>
<c:forEach var="a" begin="1" end="5" step="1">
<input type="text" name="addr${i }">
<c:set var="i" value="${i+1 }"></c:set>
</c:forEach>
</td>
</th>
</tr>
<tr>
<td colspan="5">
<button type="submit" class="btn" style="width: 100%;">입력</button>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
MemberInsert.jsp
: ArrayList에 5명의 정보 각각의 MemberDTO객체로 저장하여 setAttribute 수행
<%@page import="java.util.ArrayList"%>
<%@page import="com.test.MemberDTO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
request.setCharacterEncoding("UTF-8");
String cp = request.getContextPath();
%>
<%
// MemberInsert.jsp
// 5명 분 데이터 수신 → 객체 구성 → 자료구조 활용 → setAttribute() → MemberList.jsp로 넘김
// MemberDTO
ArrayList<MemberDTO> lists = new ArrayList<MemberDTO>();
for(int i=1; i<6; i++) // 1 2 3 4 5
{
MemberDTO dto = new MemberDTO(request.getParameter("name"+i), request.getParameter("tel"+i), request.getParameter("addr"+i));
lists.add(dto);
}
request.setAttribute("lists", lists);
%>
<jsp:forward page = "MemberList.jsp"></jsp:forward>
<!-- request.dispatcher... 사용해도 됨. -->
MemberList.jsp
: EL 을 이용하여 request를 통해 넘겨받아온 lists의 각각의 객체를 꺼내서 테이블 구성
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
request.setCharacterEncoding("UTF-8");
String cp = request.getContextPath();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MemberList.jsp</title>
<link rel="stylesheet" type="text/CSS" href="css/main.css">
</head>
<body>
<div>
<h1>JSTL 코어(Core) 문제 해결</h1>
<h2>회원 명단 출력</h2>
<hr>
</div>
<%-- <div>
<!-- 5명 분의 이름, 전화번호, 주소 출력 -->
<c:forEach var="dto" items="${lists }">
이름 : ${dto.name }
전화번호 : ${dto.tel }
주소 : ${dto.addr }
<br>
</c:forEach>
</div> --%>
<div>
<table>
<tr>
<th>이름</th>
<th>전화번호</th>
<th>주소</th>
</tr>
<c:forEach var="dto" items="${lists }">
<tr>
<td>${dto.name }</td>
<td>${dto.tel }</td>
<td>${dto.addr }</td>
</tr>
</c:forEach>
</table>
</div>
</body>
</html>
! 배워가고 있는 주인장이 쓴 글이니 정보의 정확성에 유의하시기 바랍니다 !
'JAVA개념&실습' 카테고리의 다른 글
WEB : [0607] DBCPConn & MVC 패턴 실습01 (0) | 2023.06.15 |
---|---|
WEB : [0607] DBCPConn (0) | 2023.06.15 |
WEB : [0602] EL / JSTL (0) | 2023.06.06 |
WEB : [0602] Servlet(서블릿) + JSP (0) | 2023.06.06 |
WEB : [0602] JDBC 연동 게시판 작성 실습04 (댓글기능추가) (0) | 2023.06.06 |