액션태그는 스크립트,주석,디렉티브와 함께 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 |