The NoteBook of EricKong

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks
          自定義標(biāo)簽的最大的特點(diǎn):

          利用 自定義標(biāo)簽,軟件開發(fā)人員和頁面設(shè)計(jì)人員可以獨(dú)立地自由工作.頁面設(shè)計(jì)人員可以把精力集中在使用標(biāo)簽(HTML,XML或者JSP)創(chuàng)建網(wǎng)站上,而軟件開 發(fā)人員則可以將精力集中在實(shí)現(xiàn)底層功能上面,若國(guó)際化等等,這樣,頁面設(shè)計(jì)人員可以使用自定義標(biāo)簽的形式來實(shí)現(xiàn)具體的功能.

          下面我們來指定一個(gè)簡(jiǎn)單的標(biāo)簽,步驟如下
          1. 擴(kuò)張TagSupport
          2. 寫自定義Tag的tld文件
          3. web.xml中指定你的tld文件
          4. 在JSP頁面使用自定義標(biāo)簽

          • 擴(kuò)張TagSupport
                  說明:
                          一般不會(huì)去實(shí)現(xiàn)Tag接口,而是通過TagSupport類是實(shí)現(xiàn)了Tag的接口繼承過來的字段,這些字段用做public int               doStartTag(),public int doEndTag()返回值
                          Tag.EVAL_BODY_INCLUDE 包含主體內(nèi)容
                          Tag.SKIP_BODY     不包含主體內(nèi)容
                          Tag.EVAL_PAGE      包含后面的頁面內(nèi)容
                          Tag.SKIP_PAGE     不包含主體的內(nèi)容    
          實(shí)現(xiàn)一個(gè)簡(jiǎn)單實(shí)現(xiàn)代碼:
          java 代碼
           
          1. package com.mercyblitz;  
          2. import java.io.IOException;  
          3. import javax.servlet.jsp.JspException;  
          4. import javax.servlet.jsp.JspWriter;  
          5. import javax.servlet.jsp.tagext.TagSupport;  
          6.   
          7. public class MyTags extends TagSupport {  
          8.     public int doStartTag()throws JspException  
          9.     {  
          10.         JspWriter out=pageContext.getOut();  
          11.         try  
          12.         {  
          13.             out.println("Hello,World"); //頁面中顯示的內(nèi)容  
          14.         }catch(IOException e)  
          15.         {  
          16.             throw new JspException(e);  
          17.         }  
          18.         return SKIP_BODY; //不包含主體內(nèi)容  
          19.     }  
          20. }  

          • 寫自定義Tag的tld文件
          xml 代碼
           
          1. <?xml version="1.0" encoding="UTF-8"?>  
          2. <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "web-jsptaglibrary_1_2.dtd" >  
          3. <taglib>  
          4.   <tlibversion>tlibversion</tlibversion>  <!-- 你自定義標(biāo)簽的版本數(shù) -->  
          5.   <jsp-version>1.2</jsp-version>  <!-- 指定你的JSP版本,擴(kuò)張標(biāo)簽是在JSP1.2之后兼容的 --?>  
          6.   <shortname>shortname</shortname> <!-- 標(biāo)簽的簡(jiǎn)寫 -->  
          7.   <tag>  
          8.     <name>tags</name>  <!-- 標(biāo)簽名字 -->  
          9.     <tagclass>com.mercyblitz.mytags</tagclass>  <!-- 指定你的標(biāo)簽的類 -->  
          10.   </tag>  
          11. </taglib>  
                   標(biāo)簽庫元素<taglib>屬性:表格如下
                  
          屬性表格
          屬性 描述
          tlib-version 本標(biāo)簽庫實(shí)現(xiàn)版本
          jsp-version 標(biāo)簽庫依賴的JSP版本
          short-name 被JSP創(chuàng)作工具使用的一個(gè)短的默認(rèn)名詞
          uri 指定這個(gè)標(biāo)簽庫的uri信息
          display-name 被工具使用的顯示用的名字
          small-icon 被工具使用的小圖標(biāo)
          large-icon 被工具使用的大圖標(biāo)
          description 本標(biāo)簽的描述
          validator TLD驗(yàn)證信息
          listener 實(shí)踐監(jiān)聽器規(guī)范
                  tag標(biāo)簽相關(guān)屬性:
          tag標(biāo)簽相關(guān)屬性表
          屬性 描述
          name tag標(biāo)簽唯一的名稱
          tag-class tag標(biāo)簽的處理類
          tei-class tag標(biāo)簽的TagExtraInfo類
          body-content 標(biāo)簽主體的內(nèi)容
          display-name 顯示的名稱
          small-icon 被工具使用的小圖標(biāo)
          large-icon 被工具使用的大圖標(biāo)
          description 本標(biāo)簽的描述
          variable 腳本變量的信息
          attribute 標(biāo)簽屬性的信息
                      這些呢,是為以后高級(jí)內(nèi)容說要提到的!
          • web.xml中指定你的tld文件
            xml 代碼
             
            1. <?xml version="1.0" encoding="UTF-8"?>  
            2. <web-app version="2.4"   
            3.     xmlns="http://java.sun.com/xml/ns/j2ee"   
            4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
            5.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   
            6.     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
            7.     <welcome-file-list>  
            8.        <welcome-file>/WEB-INF/mytag.jsp</welcome-file> <!-- 設(shè)置歡迎頁面 -->  
            9.     </welcome-file-list>  
            10.     <jsp-config>  
            11.           <taglib>  
            12.         <taglib-uri>http://mercyblitz.blog.ccidnet.com/taglibs.tld</taglib-uri> <!-- 設(shè)置自定義標(biāo)簽的uri(不一定存在,但是一定要唯一),為頁面的部署做好準(zhǔn)備  
            13.         <taglib-location>/WEB-INF/taglibs.tld</taglib-location>  <!--定位你的tld文件的相對(duì)路徑 -->  
            14.       </taglib>  
            15.     </jsp-config>  
            16. </web-app> 
          • 頁面部署:mytag.jsp
            html 代碼
             
            1. <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>  
            2. <%@ taglib uri="http://mercyblitz.blog.ccidnet.com/taglibs.tld" prefix="out" %>  
            3. <html>  
            4.   <head>  
            5.     <title>mytag.jsp</title>  
            6.   </head>    
            7.   <body>  
            8.     <out:tags/>  <!-- 頁面執(zhí)行的結(jié)構(gòu),就是:  Hello,World -->
            9.   </body>  
            10. </html>  
          posted on 2011-05-30 13:04 Eric_jiang 閱讀(696) 評(píng)論(0)  編輯  收藏 所屬分類: JSP
          主站蜘蛛池模板: 怀集县| 辽宁省| 石阡县| 河南省| 闽清县| 额尔古纳市| 昌黎县| 临沭县| 贵州省| 宁蒗| 溧阳市| 通山县| 汨罗市| 金川县| 凤庆县| 麻江县| 蓬溪县| 长葛市| 平阴县| 佳木斯市| 浙江省| 明光市| 甘孜| 华蓥市| 广宁县| 临汾市| 红河县| 溆浦县| 孙吴县| 房山区| 余干县| 贵南县| 义马市| 棋牌| 万年县| 北流市| 山阳县| 明水县| 泰兴市| 黄梅县| 井冈山市|