반응형
01. taglib Directive
- JSP 문서에 태그 라이브러리 파일(커스텀 태그)을 포함하도록 지시
- 고급에서 많이 사용
<%@taglib prefix="namespace" uri="tldId" %>
02. 커스템 태그 사용법
1) 커스텀 태그 클래스 만들기
💙CustomTag.java
package xyz.itwill.custom;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
//태그 클래스 : JSP 문서에서 커스텀 태그 사용 시 객체로 생성하기 위한 클래스
// => 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();
}
}
2) 태그 라이브러리(TLD) 파일 만들어 커스텀태그 등록하기
파일명 확장자 : .tld
new >> other >> XML >> XMLfile
생성된 모습
💙WEB-INF > 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>0.0</tlib-version>
<short-name>NMTOKEN</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>
3) 태그 라이브러리 불러와 사용하기
💙taglib.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
//<%-- taglib Directive를 사용하여 태그 라이브러리 파일(TLD)을 불러와 JSP 문서에 포함 --%>
//<%-- prefix속성 : 커스텀 태그를 사용하기 위한 네임스페이스(namespace)를 속성값으로 설정 --%>
//<%-- uri속성 : 태그 라이브러리 파일(TLD)의 식별자(url 엘리먼트값)를 속성값으로 설정 : [ctrl] + [space] 클릭 시 자동완성 --%>
<%@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>
<hr>
// <%-- 커스텀 태그를 사용하면 태그 클래스로 객체를 생성하여 메소드 호출하여 Java 명령 실행 --%>
// <%-- 불필요한 자바 코드를 획기적으로 줄일 수 있음 JSP의 단점 극복!! 가독성이 느리고, 여러가지 문제점이 생기지만 태그 사용으로 자바 명령 실행되게 함!! --%>
// <%-- 하지만.. [커스텀 태그 클래스 만들기] + [TLD파일에 커스텀태그 등록하기] + [태그 라이브러리 불러다] 사용할 수 있음.. 복잡하지만 알고 사용하면 편함! --%>
<custom:display/>
<custom:display/>
<custom:display/>
</body>
</html>
반응형
'jsp' 카테고리의 다른 글
[jsp] 6. JSP 내장객체의 사용범위(Scope) (0) | 2024.07.06 |
---|---|
[jsp] 5. JSP 내장객체 (0) | 2024.07.05 |
[jsp] 3. Include Directive를 통한 사이트 구축 (중형사이트에 최적) (0) | 2024.07.04 |
[jsp] 2. JSP구성요소 (스크립팅요소 | 지시어 | 표준액션태그) (0) | 2024.07.04 |
[jsp] 1. JSP(Java Server Page)의 개념 (0) | 2024.07.04 |