WEB/JSP

JSP 04 - 디렉티브 태그 ( include, taglib)

inderrom 2022. 12. 26. 11:17

include

선언 하는 법

<%@ include file="파일명"%>

include01.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Directives Tag</title>
</head>
<body>
	<h4>헤더 페이지 영역입니다</h4>
	
	<h4>------- 현재 페이지 영역 --------</h4>
	
	<h6>Copyright GDIBook</h6>
</body>
</html>

 

 

header.jsp , footer.jsp 를 따로 만들어서 머릿글과 바닥글에 외부 파일 적용하기

<include01.jsp>

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Directives Tag</title>
</head>
<body>
	<!--  include 디렉티브(골뱅이) 
	현재같은 폴더 : ./ 또는 생략 -->
	<%@ include file="header.jsp" %>
	
	<h4>------- 현재 페이지 영역(01) -------</h4>
	
	<%@ include file="footer.jsp" %>
	
</body>
</html>

<header.jsp>

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<h4>헤더 페이지 영역입니다</h4>

<footer.jsp>

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<h6>Copyright.2023. GDIBook</h6>

include는 공유를 하게 되므로

- 중복 제거

- 유일성 확보 (유일하게 한 곳에서 관리가 가능)


action 태그

<jsp:include page=""></jsp:include>

디렉티브를 쓰는 방법과 action태그에 주소를 주는 방법이 있다.

디렉티브는 동적, 액션은 동적이다.

동적은 파라미터가 있는 것

즉 , 요청 파라미터. 부수적으로 따라가는 데이터이다.

 

	<!--include 액션 태그는 동적임(파라미터0)  -->
	<!-- footer.jsp?name=value&name=value -->
	<!-- footer.jsp?id=a001&alias=gdi -->
	<jsp:include page="footer.jsp">
		<jsp:param name="id" value="a001"/>
		<jsp:param name="alias" value="gdi"/>
	</jsp:include>

-- 넣어줄 때

<!-- footer.jsp?id=a001&alias=gdi -->
<p>id : ${param.id }</p>
<p>alias : ${param.alias}</p>
<h6>Copyright.2023.reserved. GDIBook</h6>

-- 꺼낼 때<footer.jsp>

 

 

<타일즈 tiles>

--> spring 프레임워크

위와 비슷한 개념이고 이후에 배운다.


<header.jsp>

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!-- <h4>헤더 페이지 영역입니다</h4> -->
<%! // 선언문
	// 전역 변수 선언 및 0 할당. 초기화.
	int pageCount = 0;
	// 전역 메소드. 리턴 타입은 void이므로 리턴값 없음
	void addCount(){
		// 전역 변수의 값을 1 증가.
		pageCount++;
	}
%>
<%	// 스크립틀릿
	//메서드 호출
	addCount();
%>
<!-- 표현문. 전역 변수 pageCount의 값을 출력 -->
<p>이 사이트 방문은 <%=pageCount%>번째 입니다.</p>

<include01.jsp>

실행시켜보면

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Directives Tag</title>
</head>
<body>
	<!--  include 디렉티브(골뱅이) 
	현재같은 폴더 : ./ 또는 생략 -->
	<%@ include file="header.jsp" %>
	
	<h4>------- 현재 페이지 영역(01) -------</h4>
	<!-- include 디렉티브 태그는 정적(파라미터x)임 -->
	
	<!--include 액션 태그는 동적임(파라미터0)  -->
	<!-- footer.jsp?name=value&name=value -->
	<!-- footer.jsp?id=a001&alias=gdi -->
	<jsp:include page="footer.jsp">
		<jsp:param name="id" value="a001"/>
		<jsp:param name="alias" value="gdi"/>
	</jsp:include>
	
</body>
</html>

 

 

 


taglib

<%@taglib uri="경로" prefix="태그 식별자" %>

 

<tagbli01.jsp>

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!-- taglib 디렉티브 : 표현 언어 (Expression Language), JSTL 설정 시 사용 
   		- uri : 설정 정보를 가진 경로 주소
   		- prefix : uri 대신 식별해주는 별칭 -->
<!DOCTYPE html>
<html>
<head>
<title>Directives Tag</title>
</head>
<body>
	<!-- 
	 JSTL 중에서 core 사용
	 var : variable(변수)
	 begin (잘 사용 안 함) : 시작 숫자
	 end (잘 사용 안 함)   : 종료 숫자
	 step (잘 사용 안 함)  : 증가량
	 	1에서 10까지 1씩 증가되면서k 변수에 값이 들어감  -->
	<c:forEach var="k" begin="1" end="10" step="1">
		<p><c:out value="${k}"></c:out></p>
	</c:forEach>
</body>
</html>