คุณสามารถใช้แอตทริบิวต์ต่างๆ ร่วมกับแท็กที่กำหนดเองได้ ในการยอมรับค่าแอตทริบิวต์ คลาสแท็กที่กำหนดเองต้องใช้ ตัวตั้งค่า เมธอด เหมือนกับเมธอดตัวตั้งค่า JavaBean ดังที่แสดงด้านล่าง -
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) { /* Use message from attribute */ JspWriter out = getJspContext().getOut(); out.println( message ); } else { /* use message from the body */ getJspBody().invoke(sw); getJspContext().getOut().println(sw.toString()); } } }
ชื่อของแอตทริบิวต์คือ "ข้อความ" ดังนั้น setter method คือ setMessage() . ให้เราเพิ่มแอตทริบิวต์นี้ในไฟล์ TLD โดยใช้
<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