天天看點

jsp自定義标簽的編寫步驟

文章目錄

    • 什麼時候需要使用jsp自定義标簽?
    • 自定義标簽的開發步驟

什麼時候需要使用jsp自定義标簽?

當jsp的内置标簽和jstl标簽庫内的标簽都滿足不了需求,這時候就需要開發者自定義标簽。

自定義标簽的開發步驟

步驟一

編寫一個普通的java類,此時需要繼承TagSupport類

package com.vmaxtam.dotest;
import javax.servlet.jsp.tagext.TagSupport;

public class MyTagTest extends TagSupport {
    
}
           

步驟二

重寫父類的setPageContext方法,作用于得到目前jsp頁面的pageContext對象

public class MyTagTest extends TagSupport {    
    private PageContext pageContext;
    @Override
    public void setPageContext(PageContext pageContext) {
        this.pageContext=pageContext;
    }
}
           

步驟三

重寫父類的doStartTag方法,裡面寫上你定義的标簽的java操作,這裡我定義的标簽用作向浏覽器輸出一大段文字資訊

@Override
    public int doStartTag() throws JspException {
        
    try {
      pageContext.getResponse().getWriter().write("小王說:曉哥,我大哥");
        } catch (IOException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
        return super.doStartTag();
    }
           

步驟四

在你的web應用目錄下,找到WEB-INF檔案夾,在裡面建立一個tld類型的檔案(注:一定要是tld檔案)

然後再裡面注冊你的标簽吧:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
  "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
  <tlib-version>1.0</tlib-version><!-- 代表标簽庫的版本号 -->
  <jsp-version>1.2</jsp-version><!-- 代表jsp的版本 -->
  <short-name>mtt</short-name><!-- 你的标簽庫的簡稱 -->
  <uri>http://vmaxtam.com/mytag</uri><!-- 你标簽庫的引用uri -->
  
  <tag>
      <name>wangyiying</name><!-- 你定義的标簽的名稱 -->
       <tag-class>com.vmaxtam.dotest.MyTagTest</tag-class><!-- 對應的标簽處理程式:包名+類名 -->
      <body-content>JSP</body-content><!-- 标簽體内容的格式 -->
  </tag>
 </taglib>
           

注:如果你忘記了怎麼寫,可以參考jstl裡的tld檔案進行編寫

步驟五

你要在使用你定義的标簽的jsp頁面導入你的标簽庫!就像導入類包一樣(也稱為:調用自己所寫的标簽)

隻需在jsp頁面寫上下面内容:

<%@taglib uri="http://vmaxtam.com/mytag" prefix="mmt" %>
           

步驟6

接下面我們就可以開始使用标簽了

<html>
  <head>   
    <title>My JSP 'testit.jsp' starting page</title>
  </head>
  
  <body>
      <mmt:mytag></mmt:mytag>
  </body>
</html>
           

這樣就編寫完了噢