본문 바로가기

학원/복기

[JSP] 지시어(Directive) - taglib

taglib 디렉티브

 

taglib은 JSP 문서에 태그 라이브러리 파일(TLD)을 포함하여 커스텀 태그를 제공하는 지시어이다.

taglib은 JSP 페이지에서 사용할 태그 라이브러리를 선언한다. JSP 페이지에서 외부 태그 라이브러리의 태그들을 사용하려면 먼저 해당 라이브러리를 태그 라이브러리 디렉티브를 통해 선언해야 한다. 

 

형식)

<%@ taglib uri="태그라이브러리URI" prefix="태그접두사" %>

 

여기서 uri 속성은 태그 라이브러리의 식별자인 URI(Uniform Resource Identifier)를 지정하며, prefix 속성은 해당 태그 라이브러리에서 사용할 접두사를 지정한다. 태그 라이브러리의 URI는 일반적으로 외부 라이브러리의 위치를 가리키는 URL 또는 URI 형태로 지정된다.

 

 

태그 라이브러리 파일 : 태그 클래스를 커스텀 태그로 등록하기 위한 XML 파일

커스텀 태그 : 태그 클래스를 이용하여 만들어진 Java 태그

태그 클래스 : JSP 문서에서 커스텀 태그를 사용한 경우 객체를 생성하기 위한 클래스 →  TagSupport 클래스를 상속받아 작성한다.

 

 


예제)

CustomTag 클래스 생성(태그 클래스)
CustomTag 클래스 생성(태그 클래스)

CustomTag 클래스 생성 (태그 클래스)

package xyz.itwill.custom;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;

//태그 클래스 => TagSupport 클래스를 상속받아 작성 
public class CustomTag extends TagSupport{
	private static final long serialVersionUID = 1L;
	
	//JSP 문서에서 커스텀 태그를 사용한 경우 태그 객체에 의해 자동으로 호출되는 메소드 
	@Override
	public int doStartTag() throws JspException {
		try {
			pageContext.getOut().println("<h3>커스텀 태그 사용</h3>");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return super.doStartTag();
	}
}

 

태그 라이브러리 파일 생성

 

확장자를 tld로 설정

 

filter에서 jsptag 검색 후 맨 첫번째 선택

 

j2ee 클릭 후 Edit 속성 들어가서
no priefix로 변경

 

 

[custom.tld] 

 

custom.tld 생성 완료

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd ">
  <tlib-version>1.0</tlib-version>
  <short-name>custom</short-name>
  <uri>http://www.itwill.xyz/custom</uri>
  <tag>
  	<name>display</name>
  	<tag-class>xyz.itwill.custom.CustomTag</tag-class>
  	<body-content>empty</body-content>
  </tag>
</taglib>

 

taglib 디렉티브를 사용하여 태그 라이브러리 파일을 포함하여 커스텀 태그를 사용할 수 있다.

prefix 속성 : 커스텀 태그를 사용하기 위한 접두사(NameSpace)를 속성값으로 설정한다.

uri 속성: 태그 라이브러리 파일(TLD)의 식별자를 속성값으로 설정한다.

 

[taglib.jsp]

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

<%@taglib prefix="custom" uri="http://www.itwill.xyz/custom" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP</title>
</head>
<body>
	<h1>taglib Directive</h1>
	<hr>
	<p>JSP 문서에 태그 라이브러리 파일(TLD)을 포함하여 커스텀 태그를 제공하는 지시어</p>
	<p>태그 라이브러리 파일 : 태그 클래스를 커스텀 태그로 등록하기 위한 XML 파일</p>
	<p>커스텀 태그 : 클래스를 이용하여 만들어진 Java 태그</p>
	<hr>
	<custom:display/>
	<custom:display/>
	<custom:display/>
</body>
</html>

 

 

 

 

 

 

'학원 > 복기' 카테고리의 다른 글

[JSP] 객체의 사용범위(Scope)  (0) 2023.06.25
[JSP] 내장객체(Implicit Object)  (0) 2023.06.23
[JSP] 지시어(Directive) - include  (0) 2023.06.22
[JSP] 지시어(Directive) - page  (0) 2023.06.21
[JSP] 스크립트 요소(Script Element)  (0) 2023.06.20