JSP페이지와 동일한 문법을 사용하며 tag 파일을 커스텀태그 클래스로 변환해주는 원리로 사용한다.
태그파일의 경로는 /WEB-INF/tags 폴더이며 필요에따라 하위폴더를 만들어 사용하면 된다.
태그파일은 <%@ tag %> 로 정의한다. 스크립틀 릿이나 EL등 JSP에서 다루는 모든 표기가 가능하다.
<%@ tag language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ tag import="java.util.Calendar" %>
<%
Calendar cal =Calendar.getInstance();
%>
<%= cal.get(Calendar.YEAR) %> 년
<%= cal.get((Calendar.MONTH))+1 %> 월
<%= cal.get(Calendar.DATE) %> 일
사용은 해당 JSP 페이지에서 <%@taglib %>테그 디렉티브로 정의한다.
-
prefix에 원하는 접두사를 선언한다.
-
tagdir 속성에 태그 파일이 들어있는 폴더의 경로를 지정한다.
이후 <prefix:태그파일명> 으로 사용하게 된다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="tf" tagdir="/WEB-INF/tags/chap16" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name='viewport' content='width=device-width, initial-scale=1'>
<link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css'>
<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js'></script>
<script src='https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js'></script>
<script src='https://kit.fontawesome.com/a076d05399.js'></script>
<title>Insert title here</title>
</head>
<body>
오늘은 <b><tf:now /></b> 입니다.
</body>
</html>
장점으로는 재사용성이 좋고, 코드 가독성이 확장된다는 점이 있다고 한다.
'JSP & Servlet' 카테고리의 다른 글
커스텀태그에서의 복잡한 Attribute 사용. (0) | 2020.07.20 |
---|---|
커스텀태그의 몸통 내용 처리방식 (0) | 2020.07.20 |
ContextListener (0) | 2020.07.17 |
CharacterEncodingFilter (0) | 2020.07.17 |
Servlet 수행 후 Filter를 거쳐서 응답보내기 (0) | 2020.07.17 |