Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

วิธีเขียน custom tag ใน JSP (เริ่มต้น)

Custom tag เป็นเอลิเมนต์ภาษา JSP ที่ผู้ใช้กำหนดเอง เมื่อ JSP ถูกแปลเป็นเซิร์ฟเล็ต Tag จะถูกแปลงเป็นการทำงานบน tag handler object

ขั้นตอนการสร้าง Custom Tag แบบง่าย (Simple Tag Handler - JSP 2.0+)

1. สร้าง Tag Handler Class (extends SimpleTagSupport)

package com.example;

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. คอมไพล์และวางไฟล์ .class

คอมไพล์แล้ววางใน WEB-INF/classes/com/example/HelloTag.class (ตาม package structure)

3. สร้างไฟล์ TLD (Tag Library Descriptor)

สร้าง WEB-INF/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.example.HelloTag</tag-class>
        <body-content>empty</body-content>
    </tag>
</taglib>

4. ใช้งานใน JSP

<%@ taglib prefix="ex" uri="WEB-INF/custom.tld" %>
<html>
<head><title>Custom Tag ตัวอย่าง</title></head>
<body>
    <ex:Hello/>
</body>
</html>

ผลลัพธ์

Hello Custom Tag!

ขยายความสามารถ

  • รับ attribute → เพิ่ม setter method และ <attribute> ใน TLD (ดูบทความ ID 1004075926)
  • รองรับ body content → ตั้ง body-content เป็น scriptless หรือ tagdependent และใช้ getJspBody().invoke()
  • เข้าถึง implicit objects → ผ่าน getJspContext()

SimpleTagSupport ทำให้เขียน custom tag ง่ายกว่ารุ่นเก่า (TagSupport/BodyTagSupport) มาก