๐จtaglib Directive
๐ JSP ๋ฌธ์์ ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ(TLD)์ ๋ถ๋ฌ์ ํฌํจํ์ฌ ์ปค์คํ ํ๊ทธ๋ฅผ ์ ๊ณตํ๋ ์ง์์ด
๐ ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ : ํ๊ทธ ํด๋์ค๋ฅผ ์ปค์คํ ํ๊ทธ๋ก ๋ฑ๋กํ๊ธฐ ์ํ XML ํ์ผ
๐จ์ปค์คํ ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ํํฌ ํด๋์ค๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ๋ฉ์๋ ํธ์ถํ์ฌ
๐CustomTag.java ํธ์ถํ์ฌ ์ฌ์ฉ
<custom:display/> <custom:display/> <custom:display/>
๐จ taglib Directive๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ(TLD)์ ๋ถ๋ฌ์ JSP ๋ฌธ์์ ํฌํจ
๐ prefix ์์ฑ : ์ปค์คํ ํ๊ทธ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ๋ค์์คํ์ด์ค(namespace)๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ค์
๐ uri ์์ฑ : ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ(TLD)์ ์๋ณ์(uri ์๋ฆฌ๋จผํธ๊ฐ)๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ค์
โ ""์ฌ์ด์ [ctrl]+[space] ๋๋ฌ์ ์๋์์ฑ ๊ฐ๋ฅ<%@taglib prefix="custom" uri="http://www.itwill.xyz/custom"%>
๐taglib.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%-- taglib Directive๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ(TLD)์ ๋ถ๋ฌ์ JSP ๋ฌธ์์ ํฌํจ --%> <%-- prefix ์์ฑ : ์ปค์คํ ํ๊ทธ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ๋ค์์คํ์ด์ค(namespace)๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ค์ --%> <%-- uri ์์ฑ : ํ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ(TLD)์ ์๋ณ์(uri ์๋ฆฌ๋จผํธ๊ฐ)๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ค์ --%> <%-- โ ""์ฌ์ด์ [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> <%-- ์ปค์คํ ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ํํฌ ํด๋์ค๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ๋ฉ์๋ ํธ์ถํ์ฌ --%> <custom:display/> <custom:display/> <custom:display/> </body> </html>
๐ ํ๊ทธ ํด๋์ค : JSP ๋ฌธ์์์ ์ปค์คํ ํ๊ทธ ์ฌ์ฉ์ ์คํ๋๊ธฐ ์ํ ํด๋์ค
โ TagSupport ํด๋์ค๋ฅผ ์์๋ฐ์ ์์ฑ
๐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(); } }
- WEB-INF ์ค๋ฅธ์ชฝ ํด๋ฆญ โ NEW โ Other
- XML โ XML File ์ ํ โ Next
- File name : custom.tld(์ด๋ฆ์ ์ฌ์ฉ์ ์ง์ ) โ Next
- ์ฒดํฌํญ๋ชฉ ํ์ธ โ Next
- ์ ํฑํญ๋ชฉ ํ์ธ โ Next
- j2ee ์ ํ โ Edit
- Prefix์ ์ด๋ฆ ์ญ์ โ OK
- j2ee์์ no prefix ๋ณ๊ฒฝ๋๊ฑฐ ํ์ธ โ Finish
๐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>