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>