<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-124  評論-49  文章-56  trackbacks-0

    定制標記庫
    1 編寫標記處理類
    public class TimerTag extends TagSupport{
     private long start;
     private long end;
     public int doStartTag(){       //doStartTag標記開始方法
      start=System.currentTimeMillis();
      return EVAL_BODY_INCLUDE;//
     }
     public int doEndTag() throws JspTagException {//doEndTag標記結束方法
      end=System.currentTimeMillis();
      long elapsed=end-start;
      try{
       JspWriter out=pageContext.getOut();
       out.println("running time:"+elapsed+"ms.");
      }catch(IOException e){
       throw new JspTagException(e);
      }
      return EVAL_PAGE;//
     }
    }
    2 編寫.tld文件
    <?xml version="1.0" encoding="UTF-8"?>
    <taglib xmlns="http://java.sun.com/xml/ns/j2ee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" 
        version="2.0"> 
     
        <description>custion web utility tags</description> //對當前標記庫的描述 
        <tlib-version>1.0</tlib-version>   //當前標記庫的版本 
        <short-name>util</short-name>  //對當前標記庫使用時的前綴名稱 
        <uri>http://163.com</uri> //可任意
        
         <tag> 
             <description>calc code running time</description>  //對當前標記的描述 
             <name>timer</name>  //標記我名稱
               <tag-class>com.tags.TimerTag</tag-class> 當前標記對應的處理類的具體名稱
               <body-content>JSP</body-content>  //可有empty,JSP 
         </tag> 
     </taglib> 
    3 使用格式
    jsp頁面
    <%@ taglib prefix="util" uri="http://163.com" %> 添加指令
    <util:timer></util:timer>

    總結:
    TLD是一個XML文件,在WEB-INF目錄下
    <taglib>根元素
     <tlib-version>version</tlib-version>標記庫的版本
     <short-name>prefix</short-name>前綴名稱
     <uri>uri</uri>引用的地址
     ...
     <tag>
      <name>tagname</name>標記名稱
      <tag-class>classname</tag-class>標記對應的處理類
      <tei-class>classname</tei-class>標記處理類的輔助處理類
      <body-content>[JSP,empty,scriptless,tagdependent]</body-content>
      //jsp表示標記中可以包含html,java代碼,這些代碼可以被運行
      //empty表示標記中不包含內容
      //scriptless表示標記中可以包含EL,jsp的動作代碼,不可以包括JAVA腳本代碼
      //tagdependent表示標記中可以包含
      <attribute>標記的屬性
                 <name>pattern</name>屬性的名稱
                 <required>false</required>表示該屬性是否是必須的
                 <rtexprvalue>false</rtexprvalue>該屬性是否可以是JSP的表達式
        </attribute>  
     </tag>
    </taglib>

    TagSupport運行原理(不能對標記所包含的內容進行二次加工)
     
            
    BodyTagSupport運行原理(可以對開始和結束標記所包含的內容進行處理)
       
              
     public int doAfterBody()throws JspTagException{
      BodyContent bc=getBodyContent();取內容
      String input=bc.getString();取內容
      JspWriter out=bc.getEnclosingWriter();
      
      String newContent=input;
      try{
       out.println(newContent);
      }catch(IOException e){
       throw new JspTagException(e);
      }
      return 1;
     }

    posted on 2009-11-29 22:29 junly 閱讀(1499) 評論(0)  編輯  收藏 所屬分類: jsp/servlet
    主站蜘蛛池模板: 黄网站色视频免费观看45分钟| 亚洲AV无码专区在线亚| 麻豆亚洲AV成人无码久久精品| 免费观看无遮挡www的小视频| 亚洲第一页中文字幕| 0588影视手机免费看片| 亚洲国产成人久久99精品| 无码免费午夜福利片在线 | 免费福利在线视频| 久久久久无码精品亚洲日韩| 久久青草免费91线频观看站街| eeuss草民免费| 亚洲日韩中文字幕在线播放| 亚洲乱亚洲乱妇24p| 精品久久洲久久久久护士免费| 国产成人无码综合亚洲日韩| 免费精品一区二区三区第35| 亚洲视频在线观看免费视频| 91网站免费观看| 日韩亚洲翔田千里在线| 国产精品V亚洲精品V日韩精品 | 69视频在线是免费观看| 亚洲乳大丰满中文字幕| 99久久国产免费中文无字幕| 亚洲一区二区三区国产精品无码 | 亚洲人成无码久久电影网站| 十八禁视频在线观看免费无码无遮挡骂过| 亚洲欧洲免费视频| 久久精品网站免费观看| 九九九精品视频免费| 亚洲天天做日日做天天看 | 中文字幕无线码免费人妻| 亚洲精品天天影视综合网| 岛国大片免费在线观看| 国产免费牲交视频免费播放| 久久精品国产亚洲av影院| 四虎永久在线精品免费网址 | 在线观看亚洲专区| 久久久久亚洲精品成人网小说| 男人的好免费观看在线视频| h视频免费高清在线观看|