我想在JSP中建立一個自定義標籤。如何在JSP中編寫自定義標籤?


自定義標籤是使用者定義的JSP語言元素。當包含自定義標籤的JSP頁面被翻譯成servlet時,該標籤會被轉換成對稱為標籤處理器的物件的運算。然後,當執行JSP頁面的servlet時,Web容器會呼叫這些運算。

JSP標籤擴充套件允許您建立可以直接插入JavaServer Page的新標籤。JSP 2.0規範引入了用於編寫這些自定義標籤的簡單標籤處理器。

要編寫自定義標籤,您可以簡單地擴充套件**SimpleTagSupport**類並重寫**doTag()**方法,您可以在其中放置程式碼以生成標籤的內容。

建立“Hello”標籤

假設您想定義一個名為<ex: Hello>的自定義標籤,並且您想以如下方式在沒有主體的情況下使用它:

<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()**方法使用**getJspContext()**方法獲取當前的JspContext物件,並使用它將**“Hello Custom Tag!”**傳送到當前的**JspWriter**物件。

讓我們編譯上面的類並將其複製到環境變數CLASSPATH中可用的目錄中。最後,建立以下標籤庫檔案:**<Tomcat安裝目錄>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程式中使用上面定義的自定義標籤**Hello**,如下所示:

<%@ 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!

更新於:2019年7月30日

178 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.