본문 바로가기
개발/JSP

[JSP] 액션 태그

by 두리두리안 2021. 4. 5.

액션태그는 스크립트,주석,디렉티브와 함께 JSP페이지를 이루고 있는 요소이다. 

다른 페이지의 실행 결과를 현재의 페이지에 포함

 

JSP의 액션태그

액션태그명 액션태그 설명
include <jsp:include> 다른 페이지의 실행결과를 현재 페이지에 포함
forward

<jsp:forward> 

페이지 사이의 제어를 이동시킬 때 사용
plug-in <jsp:plug-in> 

웹 브라우저에서 자바 애플릿을 실행시킬 때 사용

useBean  <jsp:useBean>

자바빈을 JSP 페이지에서 사용할 때 사용 

setProperty 

<jsp:setProperty> 

프로퍼티의 값을 세팅할 때 사용 

getProperty 

<jsp:getProperty> 

프로퍼티의 값을 얻어낼 때 사용 

 

액션태그는 XML 문법을 따르기 때문에 단독태그의 경우도 반드시 종료태그를 포함해야 한다.


JSP 페이지의 모듈화

include 액션 태그

includeTestForm

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>include 액션태그</title>
</head>
<body>
	<h2>include 액션태그</h2>
	<form method="post" action="includeTest.jsp">
	이름: <input type="text" name="name"><br>
	페이지 이름: <input type="text" name="pageName" value="includedTest"><br>
	<input type="submit" value="입력완료">
	</form>
</body>
</html>

includeTest

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%request.setCharacterEncoding("utf-8"); %>
<%
   String pageName = request.getParameter("pageName");
   pageName +=".jsp";
%> 
<!-- 문자열을 결합하는 것으로 넘어온 파라미터 값과 .jsp문자열을 결합한다. -->
<!-- 여기서는 includedTest 문자열과 .jsp문자열을 결합하여 결론적으로 pageName변수에 "includeTest.jsp"값이 들어온다. -->
포함하는 페이지 includeTest.jsp 입니다. <br>
<hr>
<jsp:include page="<%=pageName %>" flush="false"/>
<!-- 현재의 위치에 pageName변수가 가지고 있는 "includedTest.jps"문자열에 해당하는 includedTest.jsp페이지의 실행 결과를 포함 시킨다. -->
includeTest.jsp의 나머지 입니다.

includedTest

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
String name=request.getParameter("name");
/* includeTestForm에서 넘어온 파라미터변수 값이다. */
/* include 액션태그를 사용하면 같은 request 객체를 공유하기 때문에 가능  */

%>
포함되는 페이지 includedTest.jsp입니다. <p>
<b><%=name %></b>님 오셨네요..
<hr>

 

include 액션 태그에서 포함되는 페이지에 값에 전달하기 예제

 

includeTest2

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%request.setCharacterEncoding("utf-8"); %>
<%
 String name="두리안";
 String pageName="includedTest2.jsp";
%>
  포함하는 페이지 includeTest2.jsp입니다.<br>
 포함하는 페이지에 파라미터 값을 전달합니다. <br>
 <hr>
 <jsp:include page="<%=pageName %>" flush="false">
     <jsp:param name="name" value="<%=name %>"/>
     <jsp:param name="pageName" value="<%=pageName %>"/>
</jsp:include>
includeTest2.jsp의 나머지 내용 입니다.

includedTest2

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
String name=request.getParameter("name");
String pageName = request.getParameter("pageName");
%>
파리미터 값을 전달받아 실행되는 <br>
포함되는 페이지 <%=pageName %> 입니다. <br>
<b><%=name %></b>님 오셨네요..
<hr>


JSP 페이지의 흐름제어 : forward 액션 태그

JSP페이지 내에 forward액션태그르 만나게 되면, 그 전까지 출력 버퍼에 저장되어 있던 내용을 제거하고, forward액션태그가 지정하는 페이지로 이동하게 된다. 

사용자가 입력한 값에 따라 여러 페이지로 이동해야 할 경우에 사용하면 좋다.

forwardTestForm

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>forward 액션태그</title>
</head>
<body>
	<h2>forward 액션태그</h2>
	
	<form method="post" action="forwardTest.jsp">
		아이디 : <input type="text" name="id"><br>
		취미
		<select name="hobby">
			<option value="Youtube">Youtube</option>
			<option value="만화보기">만화보기</option>
			<option value="길냥이랑 놀기">길냥이랑 놀기</option>
		</select><br>
		<input type="submit" value="입력완료">
	</form>
</body>
</html>

forwardTest

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("utf-8"); %>
포워딩 하는 페이지 forwardTest.jsp로 절대 표시되지 않는다.<br>

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

forwardTest.jsp 페이지의 나머지 부분으로 표시도 실행도 되지 않는다.

forwardToTest

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
 String id = request.getParameter("id");
 String hobby  = request.getParameter("hobby");
%>

포워딩되지 페이지 forwardToTest.jsp 입니다. <br>
<b><%=id %></b>님의 <br>
취미는 <b><%=hobby %></b>입니다. 

'개발 > JSP' 카테고리의 다른 글

[JSP] 자바 빈 (java bean)  (0) 2021.04.05
[JSP] 에러 처리  (0) 2021.04.05
[JSP] 내장 객체  (0) 2021.04.04
[JSP] 페이지의 연산자, 제어문, 및 한글처리  (0) 2021.04.04
[JSP] 페이지의 스크랩트 요소  (0) 2021.04.03