posts - 431,  comments - 344,  trackbacks - 0

          開發(fā)和使用自定義標(biāo)簽程序有三個步驟:
          1.開發(fā)標(biāo)簽實(shí)現(xiàn)類
          2.編寫標(biāo)簽描述,這個描述通常是以.tld結(jié)尾的文件
          3.在web.xml中指定標(biāo)簽庫的引用

          開發(fā)實(shí)現(xiàn):

          package com.rain.tag;

          import Java.io.IOException;

          import javax.servlet.jsp.JspException;
          import javax.servlet.jsp.JspTagException;
          import javax.servlet.jsp.PageContext;
          import javax.servlet.jsp.tagext.Tag;

          public class HelloTag implements Tag {

           private PageContext pageContext;
           private Tag parent;
           
           public HelloTag(){
            super();
           }
           public int doEndTag() throws JspException {
            // TODO Auto-generated method stub
            try{
             pageContext.getOut().write("Hello World! 你好");
            }catch(IOException e){
             throw new JspTagException("IO Error:"+e.getMessage());
            }
            return EVAL_PAGE;
           }

           public int doStartTag() throws JspException {
            // TODO Auto-generated method stub
            return SKIP_BODY;  //返回SKIP_BODY,表示不計算標(biāo)簽體
           }

           public Tag getParent() {
            // TODO Auto-generated method stub
            return this.parent;
           }

           public void release() {
            // TODO Auto-generated method stub
           }

           public void setPageContext(PageContext arg0) {
            // TODO Auto-generated method stub
            this.pageContext=arg0;
           }

           public void setParent(Tag arg0) {
            // TODO Auto-generated method stub
            this.parent=arg0;
           }

          }

          編寫標(biāo)簽庫描述

          <?xml version="1.0" encoding="UTF-8" ?>
          <taglib xmlns="        xmlns:xsi="        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
                  version="2.0">
                  <description>A tag library exercising SimpleTag handlers.</description>
                  <tlib-version>1.0</tlib-version>
                 
                  <short-name>examples</short-name>
                  <uri>/demotag</uri>
                  <description>JSP應(yīng)用開發(fā)</description>
                 
                  <tag>
                    <description>Outputs Hello,World</description>
                    <name>hello_int</name>
                    <tag-class>com.rain.tag.HelloTag</tag-class>
                    <body-content>empty</body-content>
                  </tag>
          </taglib>

          使用自定義標(biāo)簽

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "<web-app>
           <taglib>
             <taglib-uri>/demotag</taglib-uri>
             <taglib-location>/WEB-INF/mytag.tld</taglib-location>
           </taglib>
          </web-app>


          <%@ page language="
          Java" contentType="text/html; charset=UTF-8"%>
          <%@ taglib uri="/demotag" prefix="hello" %>
          <html>
          <head>
          <title>Insert title here</title>
          </head>
          <body>
          <p>以下的內(nèi)容是從Taglib中顯示的:</p>
          <p><i><hello:hello_int/></i></p>
          </body>
          </html>

          本實(shí)例是實(shí)現(xiàn)Tag接口,但為了在開發(fā)中方便簡單,一般直接繼承TagSupport類,只覆蓋doStartTag和doEndTag兩個方法就可以。TagSupport是Tag的子類。

          posted on 2007-01-22 11:53 周銳 閱讀(1406) 評論(0)  編輯  收藏 所屬分類: Jsp
          主站蜘蛛池模板: 十堰市| 信宜市| 长兴县| 华池县| 四子王旗| 莱阳市| 南投市| 襄城县| 察隅县| 海林市| 湘潭市| 呼图壁县| 喀喇沁旗| 江阴市| 法库县| 怀化市| 正阳县| 微山县| 宁都县| 丰镇市| 呼玛县| 永昌县| 双牌县| 岢岚县| 称多县| 垫江县| 公主岭市| 鄯善县| 宁明县| 樟树市| 巴南区| 冀州市| 梁河县| 泽州县| 吴川市| 石门县| 毕节市| 大兴区| 张家口市| 南陵县| 濉溪县|