आप अपने कस्टम टैग्स के साथ विभिन्न एट्रिब्यूट्स का उपयोग कर सकते हैं। एट्रिब्यूट मान स्वीकार करने के लिए, एक कस्टम टैग क्लास को जावाबीन सेटर मेथड्स के समान सेटर मेथड्स लागू करने की आवश्यकता होती है:
टैग हैंडलर क्लास (HelloTag.java)
package com.tutorialspoint;
import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;
import java.io.*;
public class HelloTag extends SimpleTagSupport {
private String message;
public void setMessage(String msg) {
this.message = msg;
}
StringWriter sw = new StringWriter();
public void doTag() throws JspException, IOException {
if (message != null) {
/* एट्रिब्यूट से संदेश उपयोग करें */
JspWriter out = getJspContext().getOut();
out.println(message);
} else {
/* बॉडी से संदेश उपयोग करें */
getJspBody().invoke(sw);
getJspContext().getOut().println(sw.toString());
}
}
}
TLD फ़ाइल में एट्रिब्यूट घोषित करना
एट्रिब्यूट का नाम "message" है, इसलिए सेटर मेथड setMessage() है। TLD फ़ाइल में <attribute> एलिमेंट का उपयोग करके इस एट्रिब्यूट को जोड़ें:
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>Example TLD with Body</short-name>
<tag>
<name>Hello</name>
<tag-class>com.tutorialspoint.HelloTag</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>message</name>
</attribute>
</tag>
</taglib>
JSP में उपयोग
<%@ taglib prefix="ex" uri="WEB-INF/custom.tld" %>
<html>
<head>
<title>A sample custom tag</title>
</head>
<body>
<ex:Hello message="This is custom tag" />
</body>
</html>
आउटपुट
This is custom tag
मुख्य बिंदु
- एट्रिब्यूट नाम सेटर मेथड नाम निर्धारित करता है:
message→setMessage()। - TLD में
<attribute>घोषणा कंटेनर को एट्रिब्यूट के बारे में सूचित करती है। rtexprvalue(डिफ़ॉल्ट true) रनटाइम एक्सप्रेशन जैसे${expr}की अनुमति देता है।