欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
標簽庫描述文件(TLD)

標簽庫描述文件(TLD)

采用了XML文件格式的標簽庫描述文件(TLD)定義了用戶(hù)的標簽庫, TLD文件中常用的元素有以下4個(gè)。

1.標簽庫元素<taglib>

<taglib>元素用來(lái)設置整個(gè)標簽庫的相關(guān)信息,如:

 

2.標簽元素<tag>

<tag>元素用來(lái)定義一個(gè)標簽,它是<taglib>元素的子元素,如:

 

3.標簽屬性元素<attribute>

<attribute>元素用來(lái)定義標簽的屬性,它是<tag>元素的子元素,如:

 

4.標簽變量元素<variable>

<variable>元素用來(lái)定義標簽的變量,它是<tag>元素的子元素,如:

 

 自定義JSP標簽的一般步驟

在Java Web應用中自定義JSP標簽的一般經(jīng)過(guò)4個(gè)步驟。

(1)編寫(xiě)標簽處理類(lèi),如:

  1. public class Echo extends TagSupport {  
  2.     //標簽開(kāi)始時(shí)調用的處理方法  
  3.     public int doStartTag() throws JspException{  
  4.         try{  
  5.             //將信息內容輸出到JSP頁(yè)面  
  6.             pageContext.getOut().print(msg);              
  7.         }catch(Exception ex){  
  8.             throw new JspTagException(ex.getMessage());  
  9.         }         
  10.         //跳過(guò)標簽體的執行  
  11.         return SKIP_BODY;         
  12.     }  
  13.     //標簽結束時(shí)調用的處理方法  
  14.     public int doEndTag() {  
  15.         //繼續執行后續的JSP頁(yè)面內容  
  16.         return EVAL_PAGE;  
  17.     }  

(2)創(chuàng )建標簽庫描述符(TLD),如:

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE taglib PUBLIC "-//Sun Microsystems,   
  3. Inc.//DTD JSP Tag Library 1.2//EN" "web-jsptaglibrary_1_2.dtd" >  
  4. <taglib>  
  5.   <tlib-version>mytaglib 1.0</tlib-version>  
  6.   <jsp-version>jsp 2.0</jsp-version>  
  7.   <short-name>mytag</short-name>  
  8.   <uri>http://www.e868.net/mytag</uri>  
  9.   <tag>  
  10.     <name>echo</name>  
  11.     <tag-class>mytags.Echo</tag-class>  
  12.     <body-content>empty</body-content>  
  13.     <attribute>  
  14.         <name>msg</name>  
  15.         <required>true</required>  
  16.         <rtexprvalue>true</rtexprvalue>  
  17.     </attribute>  
  18.   </tag>  
  19. </taglib> 

(3)在JSP頁(yè)面中引用標簽庫,如:

  1. <%@ taglib prefix="mytag" uri="http://www.e868.net/mytag"%> 

(4)在JSP頁(yè)面中使用標簽,如:

  1. <mytag:echo msg="劉斌,你好!"/>  
  2. <mytag:echo msg="<%=(new Date()).toString()%>"/> 


自定義JSP標簽的應用實(shí)例(1)

本實(shí)例中分別創(chuàng )建3個(gè)自定義JSP標簽:信息顯示標簽echo、格式化日期標簽formatdate與轉換大寫(xiě)標簽touppercase。

首先創(chuàng )建信息顯示標簽的處理類(lèi)Echo.java(見(jiàn)例程6-11) 、格式化日期標簽的處理類(lèi)FormatDate.java(見(jiàn)例程6-12)與轉化大寫(xiě)標簽的處理類(lèi)ToUpperCase.java(見(jiàn)例程6-13)。

然后創(chuàng )建標簽庫描述文件mytaglib.tld(見(jiàn)例程6-14),并在mytaglib.tld中分別描述信息顯示標簽echo、格式化日期標簽formatdate與轉換大寫(xiě)標簽touppercase。

最后創(chuàng )建一個(gè)使用自定義標簽的JSP測試頁(yè)面index.jsp(見(jiàn)例程6-15)。

本實(shí)例的視頻教程請參考配套光盤(pán)的"視頻教程"部分。

例程6-11  信息顯示標簽的處理類(lèi)Echo.java

  1. package mytags;  
  2. import javax.servlet.jsp.JspException;  
  3. import javax.servlet.jsp.JspTagException;  
  4. import javax.servlet.jsp.tagext.TagSupport;  
  5. public class Echo extends TagSupport {  
  6.     //定義一個(gè)屬性用于接收要顯示的信息  
  7.     String msg = "";  
  8.     //讀取msg的值  
  9.     public String getMsg() {  
  10.         return msg;  
  11.     }  
  12.     //設置msg的值  
  13.     public void setMsg(String msg) {  
  14.         this.msg = msg;  
  15.     }  
  16.     //標簽開(kāi)始時(shí)調用的處理方法  
  17.     public int doStartTag()throws JspException{  
  18.         try{  
  19.             //將信息內容輸出到JSP頁(yè)面  
  20.             pageContext.getOut().print(msg);              
  21.         }catch(Exception ex){  
  22.             throw new JspTagException(ex.getMessage());  
  23.         }         
  24.         //跳過(guò)標簽體的執行  
  25.         return SKIP_BODY;         
  26.     }  
  27.     //標簽結束時(shí)調用的處理方法  
  28.     public int doEndTag() {  
  29.         //繼續執行后續的JSP頁(yè)面內容  
  30.         return EVAL_PAGE;  
  31.     }  

例程6-12  格式化日期標簽的處理類(lèi)FormatDate.java

  1. package mytags;  
  2. import javax.servlet.jsp.JspException;  
  3. import javax.servlet.jsp.JspTagException;  
  4. import javax.servlet.jsp.tagext.TagSupport;  
  5. import java.util.*;  
  6. import java.text.*;  
  7. public class FormatDate extends TagSupport {  
  8.     //定義一個(gè)屬性用于接收傳入的日期  
  9.     Date date = null;  
  10.     //定義一個(gè)屬性用于接收傳入的類(lèi)型  
  11.     String type = null;  
  12.     public Date getDate() {  
  13.         return date;  
  14.     }  
  15.     public void setDate(Date date) {  
  16.         this.date = date;  
  17.     }  
  18.     public String getType() {  
  19.         return type;  
  20.     }  
  21.     public void setType(String type) {  
  22.         this.type = type;  
  23.     }  
  24.     //標簽開(kāi)始時(shí)調用的處理方法  
  25.     public int doStartTag() throws JspException{  
  26.         try{  
  27.             SimpleDateFormat fmt = null;  
  28.             if (type.equals("date")){  
  29.                 fmt = new SimpleDateFormat("yyyy年MM月dd日");  
  30.             }  
  31.             if (type.equals("time")){  
  32.                 fmt = new SimpleDateFormat("hh時(shí)mm分ss秒");  
  33.             }  
  34.             if (type.equals("all")){  
  35.                 fmt = new SimpleDateFormat("yyyy年MM月dd日 hh時(shí)mm分ss秒");  
  36.             }                 
  37.             //將最后的結果輸出到頁(yè)面  
  38.             pageContext.getOut().print(fmt.format(date));     
  39.         }catch(Exception ex){  
  40.             throw new JspTagException(ex.getMessage());  
  41.         }         
  42.         //跳過(guò)標簽體的執行  
  43.         return SKIP_BODY;         
  44.     }  
  45.     //標簽結束時(shí)調用的處理方法  
  46.     public int doEndTag() {  
  47.         //繼續執行后續的JSP頁(yè)面內容  
  48.         return EVAL_PAGE;  
  49.     }  


自定義JSP標簽的應用實(shí)例(2)

例程6-13  轉化大寫(xiě)標簽的處理類(lèi)ToUpperCase.java

  1. package mytags;  
  2. import javax.servlet.jsp.JspException;  
  3. import javax.servlet.jsp.tagext.BodyContent;  
  4. import javax.servlet.jsp.tagext.BodyTagSupport;  
  5. public class ToUpperCase extends BodyTagSupport {  
  6.     //定義一個(gè)存放結果的變量  
  7.     String var = null;  
  8.     public String getVar() {  
  9.         return var;  
  10.     }  
  11.     public void setVar(String var) {  
  12.         this.var = var;  
  13.     }     
  14.     //標簽開(kāi)始時(shí)調用的處理方法  
  15.     public int doStartTag() throws JspException {  
  16.         //表示需要處理標簽體  
  17.         return EVAL_BODY_BUFFERED;  
  18.     }  
  19.     //判斷了標簽體內容之后調用的處理方法  
  20.     public int doAfterBody() throws JspException {  
  21.         //取得標簽體對象  
  22.         BodyContent body = getBodyContent();  
  23.         //取得標簽體的字符串內容  
  24.         String content = body.getString();  
  25.         //清除標簽體中的內容  
  26.         body.clearBody();  
  27.         //將內容轉換成大寫(xiě)  
  28.         content = content.toUpperCase();  
  29.         //在pageContext對象中保存變量  
  30.         pageContext.setAttribute(var,content);  
  31.         //結束對標簽體的處理  
  32.         return SKIP_BODY;         
  33.     }  

例程6-14  標簽庫描述文件mytaglib.tld

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, 
    Inc.//DTD JSP Tag Library 1.2//EN"
     
  3. "web-jsptaglibrary_1_2.dtd" >  
  4. <taglib>  
  5.   <tlib-version>mytaglib 1.0</tlib-version>  
  6.   <jsp-version>jsp 2.0</jsp-version>  
  7.   <short-name>mytag</short-name>  
  8.   <uri>http://www.e868.net/mytag</uri>  
  9.   <tag>  
  10.     <name>echo</name>  
  11.     <tag-class>mytags.Echo</tag-class>  
  12.     <body-content>empty</body-content>  
  13.     <attribute>  
  14.         <name>msg</name>  
  15.         <required>true</required>  
  16.         <rtexprvalue>true</rtexprvalue>  
  17.     </attribute>  
  18.   </tag>  
  19.   <tag>  
  20.     <name>formatdate</name>  
  21.     <tag-class>mytags.FormatDate</tag-class>  
  22.     <body-content>empty</body-content>  
  23.     <attribute>  
  24.         <name>date</name>  
  25.         <required>true</required>  
  26.         <rtexprvalue>true</rtexprvalue>  
  27.     </attribute>  
  28.     <attribute>  
  29.         <name>type</name>  
  30.         <required>true</required>  
  31.         <rtexprvalue>true</rtexprvalue>  
  32.     </attribute>      
  33.   </tag>  
  34.   <tag>  
  35.     <name>touppercase</name>  
  36.     <tag-class>mytags.ToUpperCase</tag-class>  
  37.     <body-content>tagdependent</body-content>  
  38.     <variable>  
  39.         <name-from-attribute>var</name-from-attribute>  
  40.         <variable-class>java.lang.String</variable-class>  
  41.         <scope>AT_BEGIN</scope>  
  42.     </variable>  
  43.     <attribute>  
  44.         <name>var</name>  
  45.         <required>true</required>  
  46.     </attribute>      
  47.   </tag>  
  48. </taglib> 

例程6-15  使用自定義標簽的JSP頁(yè)面index.jsp

  1. <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>  
  2. <%@ taglib prefix="mytag" uri="http://www.e868.net/mytag"%>  
  3. <html>  
  4.   <head><title>自定義JSP標簽應用實(shí)例</title></head>  
  5.   <body>  
  6.     <h2>自定義JSP標簽應用實(shí)例</h2><hr>  
  7.     <mytag:echo msg="劉斌,你好!"/><br>  
  8.      現在的時(shí)間是:<mytag:echo msg="<%=(new Date()).toString()%>"/><br>  
  9.      當前容器的版本為:<mytag:echo msg="<%=application.getServerInfo()%>"/><br>  
  10.      當前日期是:<mytag:formatdate date="<%=new Date()%>" type="date"/><br>  
  11.      當前時(shí)間是:<mytag:formatdate date="<%=new Date()%>" type="time"/><br>  
  12.      當前日期和時(shí)間是:<mytag:formatdate date="<%=new Date()%>" type="all"/><br>  
  13.     <mytag:touppercase var="result">abcdefghijklmnopqrst</mytag:touppercase>  
  14.     轉換結果:<%=result%>  
  15.   </body>  
  16. </html> 

運行效果如圖6-5所示。

 
(點(diǎn)擊查看大圖)圖6-5  index.jsp運行效果

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
tag jstl tld jsp標簽
JSP自定義標簽開(kāi)發(fā)入門(mén)實(shí)例
一篇介紹標簽庫很詳細的文章,可以做為參考手冊
[教程]自定義JSP中的Taglib標簽之五自定義標簽之SimpleTagSupport使用
支持帶多個(gè)標簽體的Jsp2.0標簽
JSP 自定義標簽
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久