首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

J2EE 自定義標籤開發完整指南

     編輯:Java 相關知識

核心組件概覽

開發 J2EE 自定義標籤需掌握以下關鍵要素:

  • 基礎類別:繼承 javax.servlet.jsp.tagext.TagSupport
  • 核心屬性:protected PageContext pageContext,可獲取 JSP 內置對象
  • 生命週期方法:doStartTag()、doEndTag()
  • 返回常量:SKIP_BODY、SKIP_PAGE、EVAL_PAGE
  • 標籤庫描述文件:*.tld,定義標籤元資料

開發流程(以 Eclipse 為例)

  1. 建立 Web Project
  2. 新建套件並創建繼承 TagSupport 的類別
  3. 實作標籤處理邏輯
  4. 編寫 .tld 描述檔
  5. 在 web.xml 註冊標籤庫

標籤處理類別範例

package demo.tag;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.TagSupport;
import java.io.*;

@SuppressWarnings("serial")
public class TagDemo extends TagSupport {
    private int pageSize;

    public int getPageSize() { return pageSize; }
    public void setPageSize(int pageSize) { this.pageSize = pageSize; }

    public int doStartTag() throws JspException {
        JspWriter out = pageContext.getOut();
        for (int i = 0; i < pageSize; i++) {
            try {
                out.println("<tr>");
                out.println("<td>" + i + "</td>");
                out.println("<td>" + (i * 10) + "</td>");
                out.println("</tr>");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return SKIP_BODY;
    }
}

關鍵規範

  1. 必須繼承 TagSupport
  2. 至少覆寫 doStartTag()(回傳 SKIP_BODY)或 doEndTag()(回傳 SKIP_PAGE 或 EVAL_PAGE)
  3. 善用 pageContext 獲取 out、request、session、application 等內置對象
  4. 屬性需提供 getter/setter,.tld 中對應宣告

TLD 檔案結構要點

  • 副檔名必為 .tld,遵循 XML 語法
  • 根元素 <taglib> 必含 tlib-version、jsp-version、short-name、tag
  • <tag> 內定義 name、tag-class、attribute
  • <attribute> 指定 name、required、type

web.xml 註冊範例

<taglib>
  <taglib-uri>abc</taglib-uri>
  <taglib-location>/WEB-INF/MyTagLib.tld</taglib-location>
</taglib>

JSP 頁面使用:<%@ taglib uri="abc" prefix="my" %>,然後 <my:showDataTag pageSize="5"/>。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved