오늘이라도

[Web] 10. JSP ④ : jsp09 ~ 12 : 수정 기능 추가 / JSP, Action Tag, EL 문법 출력 비교 본문

취업성공패키지 SW 개발자 교육/Web

[Web] 10. JSP ④ : jsp09 ~ 12 : 수정 기능 추가 / JSP, Action Tag, EL 문법 출력 비교

upcake_ 2020. 5. 20. 09:29
반응형

 

 

https://github.com/upcake/Class_Examples

교육 중에 작성한 예제들은 깃허브에 올려두고 있습니다. 

gif 파일은 클릭해서 보는 것이 정확합니다.


 - 수정 기능 추가(jsp09) -

▲회원 정보 수정 작동 화면

 

▼jsp09.jsp : 회원 정보 수정

<%@page import="com.hanul.study.MemberDAO"%>
<%@page import="com.hanul.study.MemberDTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
//request.setCharacterEncoding("utf-8");
//MemberDTO dto = new MemberDTO();
//dto.setIrum(request.getParameter("irum"));
//이하 생략
%>

<%request.setCharacterEncoding("utf-8"); %>
<!-- JSP 액션 태그 -->
<jsp:useBean id="dto" class="com.hanul.study.MemberDTO">
	<jsp:setProperty property="*" name="dto" /> <!-- 여기서 property는 form에서 넘어온 name 속성이다. -->
</jsp:useBean>

<%
MemberDAO dao = new MemberDAO();
int succ = dao.memberUpdate(dto);

if (succ > 0) {
	out.println("<script> alert('수정 성공!!!');");
	out.println("location.href = 'jsp06.jsp'; </script>");
} else {
	out.println("<script> alert('수정 실패!!!');");
	out.println("location.href = 'jsp06.jsp'; </script>");
}
%>

 

 

 - JSP, Action Tag, EL 문법 출력 비교 (jsp10 ~ 12) -

▲jsp10 작동 화면

 

▼jsp10Main.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP10 Main</title>
</head>
<body>
	<form action="jsp10.jsp" method="post">
		이름 : <input type="text" name="irum" required="required" /><br />
		아이디 : <input type="text" name="id" required="required" /><br />
		비밀번호 : <input type="password" name="pw" required="required" /><br />
		나이 : <input type="number" name="age" required="required" /><br />
		주소 : <input type="text" name="addr" required="required" /><br />
		전화번호 : <input type="text" name="tel" required="required" /><br />
		<input type="submit" value="회원가입" />
		<input type="reset" value="초기화" />
		<input type="button" value="회원 목록 보기" onclick="location.href='jsp06.jsp'" />
	</form>
</body>
</html>

 

▼jsp10.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("utf-8");
%>

<jsp:useBean id="dto" class="com.hanul.study.MemberDTO">
	<jsp:setProperty property="*" name="dto"/>
</jsp:useBean>



<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP10</title>
</head>
<body>
	[매개 변수(Parameter)의 내용을 출력]<br />
	<!-- JSP를 이용한 출력 -->
	이름(JSP) : <%=dto.getIrum() %>
	<br />
	
	<!-- Action Tag를 이용한 출력 -->
	아이디(Action Tag) : <jsp:getProperty property="id" name="dto"/> <!-- 자동 완성으로 액션 태그 쉽게 만들수 있다. -->
	<br />
	
	<!-- EL(Expression Language) 문법을 이용한 출력 -->
	주소(EL) : ${dto.addr }
</body>
</html>

 

 

▲jsp11~12 작동 화면

▼jsp11Main.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP11 Main</title>
</head>
<body>
	<form action="jsp11.jsp" method="post">
		이름 : <input type="text" name="irum" required="required" /><br />
		아이디 : <input type="text" name="id" required="required" /><br />
		비밀번호 : <input type="password" name="pw" required="required" /><br />
		나이 : <input type="number" name="age" required="required" /><br />
		주소 : <input type="text" name="addr" required="required" /><br />
		전화번호 : <input type="text" name="tel" required="required" /><br />
		<input type="submit" value="회원가입" />
		<input type="reset" value="초기화" />
		<input type="button" value="회원 목록 보기" onclick="location.href='jsp06.jsp'" />
	</form>
</body>
</html>

 

▼jsp11.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("utf-8");
%>

<jsp:useBean id="dto" class="com.hanul.study.MemberDTO">
	<jsp:setProperty property="*" name="dto"/>
</jsp:useBean>

<!-- dto 객체를 jsp12.jsp로 넘겨서 출력 : 동적 페이지 전환 ▶ request.forward() -->
<%
request.setAttribute("dto", dto);	//바인딩(연결) 객체
//RequestDispatcher rd = request.getRequestDispatcher("jsp12.jsp");	//페이지 호출
//rd.forward(request, response);		//페이지 전환
%>

<jsp:forward page="jsp12.jsp"></jsp:forward>

 

▼jsp12.jsp

<%@page import="com.hanul.study.MemberDTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("utf-8");
MemberDTO dto = (MemberDTO) request.getAttribute("dto");	//바인딩 객체를 받는다 ▶ 객체 타입을 MemberDTO 타입으로 캐스팅한다
%>

<!-- 식별자가 겹치면 안되므로 dto가 아닌 actionDto로 식별자를 정하였다. -->
<jsp:useBean id="actionDTO" class="com.hanul.study.MemberDTO">
	<jsp:setProperty property="*" name="actionDTO"/>
</jsp:useBean>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP 12</title>
</head>
<body>
	이름(JSP) : <%=dto.getIrum() %>
	<br />
	
	아이디(Action Tag) : <jsp:getProperty property="id" name="actionDTO"/>
	<!-- 자바로 받은 dto 객체(dto)는 사용할 수 없고 액션 태그로 dto 객체(actionDTO)를 받아야 한다. -->
	<br />
	<!-- jsp:getProperty ~~  Action Tag는 반드시 jsp:useBean ~~ Action Tag로 객체가 생성되어있어야만 사용가능하다. -->
	
	주소(EL) : ${dto.addr }
	<br />
	
	전화번호(EL) : ${actionDTO.tel }
	<!-- EL은 자바든 액션태그든 둘 다 사용가능하다. -->
</body>
</html>

 

반응형