1. <jsp:include> 액션 태그

: 현재의 JSP 파일에 다른 파일(JSP, HTML)을 포함시킴

: 코드의 중복 제거

<jsp:include page="포함할페이지" flush="true/false" />

 

- sub.jsp 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<p>
sub.jsp에서 생성한 내용
</p>

 

- main.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>main</title>
</head>
<body>
main.jsp에서 생성한 내용

<jsp:include page="sub.jsp" flush="false" />

include 이후의 내용
</body>
</html>


2. <jsp:include> 액션 태그를 이용한 중복 영역 처리

 

<layout1>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>layout1</title>
</head>
<body>
<table width="400" border="1" cellpadding="0" cellspacing="0">
<tr>
	<td colspan="2">
		<jsp:include page="/module/top.jsp" flush="false" />
	</td>
</tr>
<tr>
	<td width="100" valign="top">
		<jsp:include page="/module/left.jsp" flush="false" />
	</td>
	<td width="300" valign="top">
		<!--  내용 부분 : 시작  -->
		레이아웃1
		<br /><br /><br />
		<!--  내용 부분 : 끝  -->
	</td>
</tr>
<tr>
	<td colspan="2">
		<jsp:include page="module/bottom.jsp" flush="false" />
	</td>
</tr>
</table>
</body>
</html>

 

- top.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 상단 메뉴 : 
<a href="/chap07/home.jsp">홈</a>
<a href="/chap07/info.jsp">정보</a>

- left.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
좌측 메뉴 :

- bottom.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
하단 메뉴 :
소개 | 도움말 | 약관 | 사이트맵

<layout2>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>layout1</title>
</head>
<body>
<table width="400" border="1" cellpadding="0" cellspacing="0">
<tr>
	<td colspan="2">
		<jsp:include page="/module/top.jsp" flush="false" />
	</td>
</tr>
<tr>
	<td width="100" valign="top">
		<jsp:include page="/module/left.jsp" flush="false" />
	</td>
	<td width="300" valign="top">
		이 부분은 layout2.jsp가 생성한다. <br>
		레이아웃2
		<br /><br /><br />
	</td>
</tr>
<tr>
	<td colspan="2">
		<jsp:include page="module/bottom.jsp" flush="false" />
	</td>
</tr>
</table>
</body>
</html>


3. 포함할 페이지에 파라미터 추가하기 : <jsp.param>

: <jsp.include> 태그 하위에 작성

: 이미 동일한 이름의 파라미터 존재 시 기존 파라미터의 값을 유지하면서 새로운 값(high priority)을 추가

 

<예시 1>

- info.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>INFO</title>
</head>
<body>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
	<tr>
		<td>제품번호</td>
		<td>XXXX</td>
	</tr>
	<tr>
		<td>가격</td>
		<td>10,000원</td>
	</tr>
</table>

<jsp:include page="infoSub.jsp" flush="false">
	<jsp:param name="type" value="A" />
</jsp:include>
</body>
</html>

 

 - infoSub.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	String type = request.getParameter("type");
	if(type == null) {
		return;
	}
%>
<br>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
	<td>타입</td>
	<td><b><%= type %></b></td>
</tr>
<tr>
	<td>특징</td>
	<td>
	<% if(type.equals("A")) { %>
	강한 내구성
	<% } else if(type.equals("B")) { %>
	뛰어난 대처 능력
	<% } %>
	</td>
</tr>
</table>

<예시 2>

- body_main.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	request.setCharacterEncoding("utf-8");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

include 전 name 파라미터 값: <%= request.getParameter("name") %>

<hr>

<jsp:include page="body_sub.jsp" flush="false">
	<jsp:param name="name" value="최범균"/>
</jsp:include>

<hr/>

include 후 name 파라미터 값: <%= request.getParameter("name") %>

</body>
</html>

 

- body_sub.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
body_sub에서 name 파라미터 값: <%= request.getParameter("name") %>
<br />
name 파라미터 값 목록:
<ul>
<%
	String[] names = request.getParameterValues("name");
	for(String name : names) {
%>
	<li> <%= name %> </li>
<%
	}
%>
</ul>

+ Recent posts