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

ฉันต้องการสร้างแท็กที่กำหนดเองใน JSP จะเขียนแท็กที่กำหนดเองใน JSP ได้อย่างไร


แท็กที่กำหนดเองเป็นองค์ประกอบภาษา JSP ที่ผู้ใช้กำหนด เมื่อเพจ JSP ที่มีแท็กแบบกำหนดเองถูกแปลเป็นเซิร์ฟเล็ต แท็กจะถูกแปลงเป็นการดำเนินการบนอ็อบเจ็กต์ที่เรียกว่าตัวจัดการแท็ก คอนเทนเนอร์เว็บจะเรียกใช้การดำเนินการเหล่านั้นเมื่อดำเนินการเซิร์ฟเล็ตของเพจ JSP

ส่วนขยายแท็ก JSP ให้คุณสร้างแท็กใหม่ที่คุณสามารถแทรกลงใน JavaServer Page ได้โดยตรง ข้อกำหนด JSP 2.0 ได้แนะนำ Simple Tag Handlers สำหรับการเขียนแท็กที่กำหนดเองเหล่านี้

ในการเขียนแท็กที่กำหนดเอง คุณสามารถขยาย SimpleTagSupport คลาสและแทนที่ doTag() วิธีที่คุณสามารถวางโค้ดของคุณเพื่อสร้างเนื้อหาสำหรับแท็ก

สร้างแท็ก "สวัสดี"

พิจารณาว่าคุณต้องการกำหนดแท็กที่กำหนดเองชื่อ และคุณต้องการใช้ในรูปแบบต่อไปนี้โดยไม่มีเนื้อหา -

<ex:Hello />

ในการสร้างแท็ก JSP ที่กำหนดเอง คุณต้องสร้างคลาส Java ที่ทำหน้าที่เป็นตัวจัดการแท็กก่อน ให้เราสร้าง HelloTag คลาสดังนี้ −

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!");
   }
}

โค้ดด้านบนมีโค้ดง่ายๆ โดย doTag() เมธอดรับวัตถุ JspContext ปัจจุบันโดยใช้ getJspContext() เมธอดและใช้เพื่อส่ง "สวัสดี แท็กที่กำหนดเอง!" เป็น JspWriter ปัจจุบัน วัตถุ

ให้เรารวบรวมคลาสข้างต้นและคัดลอกในไดเร็กทอรีที่มีอยู่ในตัวแปรสภาพแวดล้อม CLASSPATH สุดท้าย สร้างไฟล์ไลบรารีแท็กต่อไปนี้:webapps\ROOT\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.tutorialspoint.HelloTag</tag-class>
      <body-content>empty</body-content>
   </tag>
</taglib>

ให้เราใช้แท็กที่กำหนดเองข้างต้น สวัสดี ในโปรแกรม JSP ของเราดังนี้ -

<%@ taglib prefix = "ex" uri = "WEB-INF/custom.tld"%>

<html>
   <head>
      <title>A sample custom tag</title>
   </head>

   <body>
      <ex:Hello/>
   </body>
</html>

เรียก JSP ข้างต้นและสิ่งนี้ควรให้ผลลัพธ์ดังต่อไปนี้ -

Hello Custom Tag!