각진 세상에 둥근 춤을 추자
[JSP] 액션 태그 - <jsp: include> 본문
액션 태그 (Action tag)란 JSP의 표준 태그로, 페이지 사이에서 이동을 제어하거나 자바빈을 생성할 때 주로 사용한다.
<jsp: 태그명 />
액션 태그의 특징은 다음과 같다.
- XML 문법을 따른다.
- 반드시 종료 태그를 사용한다.
- 액션 태그 사이에 주석을 사용하면 에러가 발생한다.
- 액션 태그에 속성값을 부여할 때는 표현식 <%= %>을 사용할 수 있다.
액션 태그의 종류는 다음과 같다.
- <jsp: include> - 외부 파일을 현재 파일에 포함
- <jsp: forward> - 다른 페이지로 요청을 넘김
- <jsp: useBean>, <jsp: setProperty>, <jsp: getProperty> - 자바빈즈를 생성하고 값을 설정/추출
- <jsp: param> - 다른 페이지로 매개변수 전달 (include, forward 액션 태그와 함께 사용)
<jsp: include>
<jsp: include> 액션 태그는 외부 JSP 파일을 현재 JSP 파일로 포함시키는 기능을 한다.
비슷한 기능으로는 include 지시어가 있다.
include 지시어와 include 액션 태그를 다음과 같이 비교해 본다.
지시어 | 액션 태그 | |
형식 | <%@ include file = "경로" %> | <jsp: include page = "경로" /> |
표현식 | 표현식 사용 불가 | 표현식 사용 가능 |
포함 방식 | 페이지 자체를 현재 페이지에 포함시킨 후 컴파일 진행 | 실행의 흐름을 포함시킬 페이지로 이동시킨 후 실행한 결과를 현재 페이지에 포함시킴 |
변수 | 포함시킨 파일에서 생성한 변수 사용 가능 | 포함시킨 파일에서 생성한 변수 사용 불가 |
정적 | 동적 |
- 지시어: 페이지를 현재 페이지에 포함시킨 후 컴파일 → 동일한 페이지로 인식
- 액션 태그: 컴파일 후 결과물을 현재 페이지에 삽입 → 다른 페이지로 인식
예제를 통해 include 액션 태그에 대해 이해해 본다.
[예제] include 액션 태그
(1) 외부 파일 생성: inc 폴더 - OuterPage1.jsp, OuterPage2.jsp
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>포함될 외부 JSP 파일1</title>
</head>
<body>
<h2>외부 파일1</h2>
<!-- String 타입 변수 선언 -->
<%
String newVar1 = "고구려 세운 동명왕";
%>
<!-- page와 request 내장 객체 영역에서 속성을 읽어와 출력 -->
<ul>
<li>page 영역 속성 : <%= pageContext.getAttribute("pAttr") %></li>
<li>request 영역 속성 : <%= request.getAttribute("rAttr") %></li>
</ul>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>포함될 외부 JSP 파일2</title>
</head>
<body>
<h2>외부 파일2</h2>
<!-- String 타입 변수 선언 -->
<%
String newVar2 = "백제 온조왕";
%>
<!-- page와 request 내장 객체 영역에서 속성을 읽어와 출력 -->
<ul>
<li>page 영역 속성 : <%= pageContext.getAttribute("pAttr") %></li>
<li>request 영역 속성 : <%= request.getAttribute("rAttr") %></li>
</ul>
</body>
</html>
(2) include 실습 파일 생성: includeMain.jsp
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<%
// 포함할 파일의 경로
String outerPath1 = "./inc/OuterPage1.jsp";
String outerPath2 = "./inc/OuterPage2.jsp";
// page 영역과 request 영역에 속성 저장
pageContext.setAttribute("pAttr", "동명왕");
request.setAttribute("rAttr", "온조왕");
%>
<!DOCTYPE html>
<html>
<head>
<title>Include 실습</title>
</head>
<body>
<!-- 지시어 방식 -->
<h3>[지시어 방식으로 페이지 포함하기]</h3>
<%@ include file="./inc/OuterPage1.jsp" %>
<p>외부 파일에 선언한 변수: <%= newVar1 %></p>
<!-- 액션 태그 방식 -->
<h3>[액션 태그 방식으로 페이지 포함하기]</h3>
<jsp:include page="./inc/OuterPage2.jsp"/>
<jsp:include page="<%= outerPath2 %>" />
</body>
</html>
'JSP' 카테고리의 다른 글
[JSP] <jsp: useBean> (0) | 2022.10.12 |
---|---|
[JSP] 액션 태그 - <jsp: forward> (0) | 2022.10.11 |
[JSP] session 객체 (0) | 2022.10.09 |
[JSP] response 객체 (0) | 2022.10.06 |
[JSP] 내장 객체(Implicit Object) - request (0) | 2022.10.05 |