본문 바로가기
Java Web Programming/4. JSP

[JSP] Forward ActionTag 기본

by 파프리카_ 2020. 9. 15.
728x90
반응형

 [ Forward ActionTag ]

 

기본 문법

<jsp:forward page="[page path]">
	<jsp:param value="[page에 전송할 value]" name="[전송할 때 부여할 name]"/>
</jsp:forward>

 

 

* value 값으로 한글이 들어갈 때

> forward-action 페이지

jsp forward 액션 태그에서 param으로 한글을 전송하기 위해서는 한글 인코딩이 별도로 필요하다!

<% [datatype] [변수명] = URLEncoder.encode("[value]", "utf-8"); %>

<jsp:forward page="[view-page path]">
  <jsp:param value="<%=[변수명] %>" name="[name]" />
</jsp:forward>

 

> view 페이지

jsp forward param 한글 정보를 받기위해서는 한글 처리(디코딩)가 필요하다

<% [DataType] [변수명] = URLDecoder.decode(request.getParameter("[name]"), "utf-8"); %>

 


적용 예제

 

forward-form.jsp -- forward-action.jsp

                                        파프리카님 89세 성인입니다.

                                        만약 19세 이하이면 

                                              jsp forward action tag를 이용해

                                             child-view.jsp에서 응답하게 한다.

 

 

/forward-form.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP Forward ActionTag 연습</title>
</head>
<body>
<%-- 
 <form action="forward-action.jsp">
 	이름 <input type="text" name="userName"><br>
 	나이 <input type="number" name="userAge"><br>
 	<input type="submit" value="입장하기"><br> 	
 </form>
</body>
</html>

 

/forward-action.jsp

<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>forward-action</title>
</head>
<body>
	<%
		String name = request.getParameter("userName");
		int age = Integer.parseInt(request.getParameter("userAge"));

		if (age > 19) {
	%>
		<%=age%>세 성인
		<%=name%>입니다.
	<%
		} else {
		//jsp forward 액션 태그에서 param으로 한글을 전송하기 위해서는
		//한글 인코딩이 별도로 필요하다
		String info = URLEncoder.encode("테스트", "utf-8");
	%>
		<jsp:forward page="child-view.jsp">
			<jsp:param value="list" name="command" />
			<jsp:param value="<%=info %>" name="info" />
		</jsp:forward>
	<%
		}
	%>

</body>
</html>

 

/child-view.jsp

<%@page import="java.net.URLDecoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>child-view</title>
</head>
<body bgcolor="yellow">
	<%=request.getParameter("userAge") %>세 
	<%=request.getParameter("userName") %>님 <br>
	미성년자 페이지입니다.<hr>	
	<%=request.getParameter("command")%><br><br>
	<%
		//jsp forward param 한글 정보를 받기위해서는
		//한글 처리(디코딩)가 필요하다
		String info = URLDecoder.decode(request.getParameter("info"), "utf-8");
	%>
	<%=info %><br><br>
	<a href="forward-form.jsp">입장 페이지로</a>
</body>
</html>

시작 폼

 

→ 성인인 경우

 

미성년자인 경우

728x90
반응형