एक कस्टम टैग एक उपयोगकर्ता-परिभाषित JSP भाषा तत्व है। जब एक कस्टम टैग वाला JSP पेज सर्वलेट में अनुवादित होता है, तो टैग को टैग हैंडलर नामक ऑब्जेक्ट पर ऑपरेशन्स में परिवर्तित किया जाता है। वेब कंटेनर तब उन ऑपरेशन्स को आमंत्रित करता है जब JSP पेज का सर्वलेट निष्पादित होता है।
JSP टैग एक्सटेंशन आपको नए टैग बनाने देते हैं जिन्हें आप सीधे JavaServer Page में डाल सकते हैं। JSP 2.0 विनिर्देश ने इन कस्टम टैग्स को लिखने के लिए Simple Tag Handlers पेश किए।
कस्टम टैग लिखने के चरण
- SimpleTagSupport क्लास को एक्सटेंड करें।
- doTag() मेथड को ओवरराइड करें जहां आप टैग के लिए कंटेंट जनरेट करने के लिए कोड रखते हैं।
"Hello" टैग बनाएं
मान लें कि आप <ex:Hello> नामक एक कस्टम टैग परिभाषित करना चाहते हैं और बिना बॉडी के इसका उपयोग करना चाहते हैं:
<ex:Hello />
1. टैग हैंडलर क्लास (HelloTag.java)
package com.tutorialspoint;
import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;
import java.io.*;
public class HelloTag extends SimpleTagSupport {
public void doTag() throws JspException, IOException {
JspWriter out = getJspContext().getOut();
out.println("Hello Custom Tag!");
}
}
2. संकलन और तैनाती
- उपरोक्त क्लास को संकलित करें और CLASSPATH में उपलब्ध निर्देशिका में कॉपी करें।
- टैग लाइब्रेरी फ़ाइल बनाएं: <Tomcat-Installation-Directory>/webapps/ROOT/WEB-INF/custom.tld
3. TLD फ़ाइल (custom.tld)
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>Example TLD</short-name>
<tag>
<name>Hello</name>
<tag-class>com.tutorialspoint.HelloTag</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>
4. JSP में उपयोग
<%@ taglib prefix="ex" uri="WEB-INF/custom.tld" %>
<html>
<head>
<title>A sample custom tag</title>
</head>
<body>
<ex:Hello/>
</body>
</html>
आउटपुट
Hello Custom Tag!
मुख्य बिंदु
- SimpleTagSupport JSP 2.0+ के लिए आधार क्लास है (पुराना TagSupport जटिल है)।
- doTag() में
getJspContext().getOut()के माध्यम से आउटपुट लिखें। - body-content हो सकता है: empty, scriptless, tagdependent, JSP।
- TLD फ़ाइल
WEB-INF/या JAR केMETA-INF/में रखें।