亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

JSP的taglib示例

2019-11-14 23:27:46
字體:
來源:轉載
供稿:網友
jsp的taglib示例 Posted on 2015-03-26 11:51 思思博士 閱讀(...) 評論(...) 編輯 收藏

web.xml

 1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee                                                 5     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 6  7     <jsp-config> 8         <taglib> 9             <taglib-uri>/WEB-INF</taglib-uri>10             <taglib-location>/WEB-INF/mytag.tld</taglib-location>11         </taglib>12     </jsp-config>13 </web-app>

mytag.tld

 1 <?xml version="1.0" encoding="UTF-8"?>  2 <taglib>  3    <tlibversion>1.0</tlibversion>  4    <jspversion>1.1</jspversion>  5     6   <tag>  7     <name>displayDate</name>  8     <tagclass>gys.DateTagNoBody</tagclass>  9     <bodycontent>empty</bodycontent>     <!-- 標簽體之間的內容要為空 -->10   </tag>  11   <tag> 12     <name>displayDateTwo</name> 13     <tagclass>gys.DateTagAttribute</tagclass> 14     <bodycontent>empty</bodycontent>    <!-- 標簽體之間的內容要為空 -->15     <!-- 定義屬性 -->  16     <attribute>  17        <name>pattern</name> <!-- 屬性名字 -->  18        <type>String</type>  <!-- 屬性類型 -->  19        <requried>false</requried> <!-- 是否必須 -->  20        <rtexPRvale>false</rtexprvale> <!-- 表示是否可以使用JSP表達式  -->  21       </attribute>22   </tag>23         24   <tag> 25     <name>iterator</name> 26     <tagclass>gys.BodyTag</tagclass> 27     <bodycontent>jsp</bodycontent> 28     <!-- 定義屬性 --> 29     <attribute> 30        <name>count</name> <!-- 屬性名字 --> 31        <type>int</type>  <!-- 屬性類型 --> 32        <requried>false</requried> <!-- 是否必須 --> 33        <rtexprvale>false</rtexprvale> <!-- 表示是否可以使用JSP表達式  --> 34   </attribute> 35   </tag> 36   37 </taglib> 

BodyTag.java

 1 package gys; 2  3 import java.io.IOException; 4 import java.text.SimpleDateFormat; 5 import java.util.Date; 6  7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.jsp.JspException; 9 import javax.servlet.jsp.JspWriter;10 import javax.servlet.jsp.tagext.BodyContent;11 import javax.servlet.jsp.tagext.BodyTagSupport;12 13 public class BodyTag extends BodyTagSupport {14 15 //    執行順序16 //17 //    doStartTag()->setBodyContent()->doInitBody()->doAfterTag()->doEndTag()18 //19 //    如果doStartTag()返回的是EVAL_BODY_INCLUDE執行doAfterTag()方法,20 //21 //    如果它返回SKip_BODY就執行doEndTag()方法。22 //23 //    setBodyContent()方法用于設置標簽體內容,如果在計算BodyContent時需要進行一些初始化工作,24 //25 //    則在doInitBody()方法中完成。標簽體內容執行完后,會調用doAfterBody()方法26 //27 //    在doAfterTag()方法中返回EVAL_BODY_AGAIN來重復執行doAfterTag()方法28 //29 //    返回SKIP_BODY值則執行doEndTag()方法。30 //31 //    在doEndTag()方法中返回EVAL_PAGE值,則執行此標簽的后的其它代碼,32 //33 //    返回SKIP_PAGE則不執行此頁面的其它代碼。34     35     private int count;36 37     private HttpServletRequest reqeust;38 39     private JspWriter out;40 41     public void init() {42         reqeust = (HttpServletRequest) pageContext.getRequest();43         out = pageContext.getOut();44     }45 46     @Override47     public int doStartTag() throws JspException {48         init();49         return this.EVAL_BODY_INCLUDE;//執行doAterTag()方法50     }51 52     // 設置當前標簽體53     @Override54     public void setBodyContent(BodyContent bodyContent) {55         this.bodyContent = bodyContent;56         //System.out.println("setBodyContent...");57     }58 59     // 需要初始化bodyContent60     @Override61     public void doInitBody() throws JspException {62         System.out.println("init.....");63     }64 65     @Override66     public int doAfterBody() throws JspException {67         if (count >= 1) {68             try {69                 out.println(count);70                 out.println("<Br>");71             } catch (IOException e) {72                 e.printStackTrace();73             }74             count--;75             return this.EVAL_BODY_AGAIN;//在doAfterBody中返回,會重復執行doAfterBody方法76         } else {77             return this.SKIP_BODY;//執行doEndTag78         }79     }80 81     @Override82     public int doEndTag() throws JspException {83         SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd");84         String date = formater.format(new Date());85         try {86             out.print(date);87         } catch (IOException e) {88             e.printStackTrace();89         }90         return this.EVAL_PAGE;//不執行此頁面的其它代碼91     }92 93     // 必須實現setXX()方法94     public void setCount(int count) {95         System.out.println("count........");96         this.count = count;97     }98 }

DateTagAttributr.java

 1 package gys; 2  3 import java.io.IOException; 4 import java.text.SimpleDateFormat; 5 import java.util.Date; 6  7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.jsp.JspException; 9 import javax.servlet.jsp.JspWriter;10 import javax.servlet.jsp.tagext.Tag;11 import javax.servlet.jsp.tagext.TagSupport;12 13 public class DateTagAttribute extends TagSupport {14 15     private String pattern;16 17     @Override18     public int doStartTag() throws JspException {19         HttpServletRequest request;20         // 是TagSupport類中定義的一個屬性,它是javax.servlet.jsp.PageContext的對象21         request = (HttpServletRequest) pageContext.getRequest();22         SimpleDateFormat formater = new SimpleDateFormat(pattern);23         String date = formater.format(new Date());24         JspWriter out = pageContext.getOut();25         try {26             out.print(date);27         } catch (IOException e) {28             e.printStackTrace();29         }30         // doStartTag() 方法返回 SKIP_BODY 。當然其原因是我們的簡單日期標記沒有正文。31         return Tag.SKIP_BODY;32     }33 34     // 必須實現setXX()方法35     public void setPattern(String pattern) {36         this.pattern = pattern;37     }38 }

DateTagNoBody.java

 1 package gys; 2  3 import java.io.IOException; 4 import java.text.SimpleDateFormat; 5 import java.util.Date; 6  7 import javax.servlet.http.HttpServletRequest; 8 import javax.servlet.jsp.JspException; 9 import javax.servlet.jsp.JspWriter;10 import javax.servlet.jsp.tagext.Tag;11 import javax.servlet.jsp.tagext.TagSupport;12 13 public class DateTagNoBody extends TagSupport {14 15     @Override16     public int doStartTag() throws JspException {17         HttpServletRequest request=(HttpServletRequest)pageContext.getRequest();18         SimpleDateFormat formater=new SimpleDateFormat("yyyy-MM-dd");19         String date=formater.format(new Date());20         JspWriter out=pageContext.getOut();21         try{22             out.print(date);23         }24         catch(IOException e){25             e.printStackTrace();26         }27         return Tag.SKIP_BODY;28     }29 30 }

運行結果:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品在线视频美女| 久久久久久91香蕉国产| 久久综合国产精品台湾中文娱乐网| 97精品免费视频| 精品亚洲男同gayvideo网站| 美女福利视频一区| 欧美精品videos| 亚洲最大av网站| 久久99青青精品免费观看| 日韩av手机在线观看| 国产精品免费一区二区三区都可以| 国产精品入口日韩视频大尺度| 97婷婷大伊香蕉精品视频| 日韩免费av在线| 懂色av一区二区三区| 欧美大全免费观看电视剧大泉洋| 国产高清在线不卡| 亚洲精品久久久久久下一站| 久久中国妇女中文字幕| 91精品中文在线| 日本久久久久亚洲中字幕| 97精品视频在线| 久久亚洲精品毛片| 国产精品黄色影片导航在线观看| 成人精品一区二区三区| 亚洲精品一区二区三区不| 日韩精品视频在线观看免费| 久久久久中文字幕| 成人免费高清完整版在线观看| 成人写真视频福利网| 国产精品电影一区| 国产97人人超碰caoprom| 亚洲自拍偷拍区| 日韩中文av在线| 亚洲视频在线免费观看| 最近2019年日本中文免费字幕| 亚洲伊人一本大道中文字幕| 国产丝袜一区二区三区| 日韩经典第一页| 久久免费视频在线观看| 精品无人区乱码1区2区3区在线| 日韩欧美亚洲一二三区| 国产视频久久久久久久| 日韩av在线一区二区| 亚洲精品日韩丝袜精品| 日韩有码在线视频| 欧美日本精品在线| 国产成人免费av| 成人精品aaaa网站| 欧美激情一区二区三区成人| 亚洲欧美日韩第一区| 亚洲人成网在线播放| 亚洲第一二三四五区| 国产啪精品视频网站| 国产精品视频内| 热久久99这里有精品| 米奇精品一区二区三区在线观看| 成人国内精品久久久久一区| 91色视频在线导航| 美女999久久久精品视频| 91精品国产精品| 欧美激情aaaa| 色久欧美在线视频观看| 亚洲图中文字幕| 亚洲精品福利在线观看| 中文字幕视频在线免费欧美日韩综合在线看| 亚洲电影在线观看| 亚洲性日韩精品一区二区| 日本高清视频一区| 欧美日韩一区二区三区在线免费观看| 成人免费福利在线| 性欧美暴力猛交69hd| 国内成人精品一区| 国产精品丝袜一区二区三区| 亚洲精品国产成人| 1769国内精品视频在线播放| 亚洲天堂免费在线| 有码中文亚洲精品| 精品一区电影国产| 亚洲国产日韩欧美在线动漫| 欧美午夜宅男影院在线观看| 久久久亚洲影院你懂的| 国产福利精品av综合导导航| 5566日本婷婷色中文字幕97| 中文字幕欧美国内| 欧美一级大胆视频| 欧美—级a级欧美特级ar全黄| 国产欧美精品在线播放| 精品国产乱码久久久久久婷婷| 国内精品中文字幕| 欧美视频在线免费看| 日本免费久久高清视频| www.日韩免费| 性欧美xxxx| 伊人伊成久久人综合网站| 91精品国产精品| 久久视频在线观看免费| 美女av一区二区| 欧美国产在线视频| 亚洲免费伊人电影在线观看av| 欧美一级高清免费播放| 日韩精品丝袜在线| 国产精品美腿一区在线看| 国产精品视频免费观看www| 国产精品高潮呻吟久久av黑人| 欧美日韩国产一区在线| 欧美中文在线观看国产| 日韩av男人的天堂| www.99久久热国产日韩欧美.com| 亚洲欧美中文日韩在线v日本| 中国china体内裑精亚洲片| 日韩av成人在线| 色妞欧美日韩在线| 一区二区三区日韩在线| 韩剧1988在线观看免费完整版| 国产噜噜噜噜噜久久久久久久久| 国自在线精品视频| 亚洲国产精品va在线看黑人动漫| zzijzzij亚洲日本成熟少妇| 午夜精品福利在线观看| 国产mv免费观看入口亚洲| 国产精品久久久久久五月尺| 亚洲aaaaaa| 成人a视频在线观看| 国产精品小说在线| 中文字幕亚洲欧美一区二区三区| 国产丝袜一区二区三区免费视频| 亚洲精品xxx| 欧美性理论片在线观看片免费| 深夜福利日韩在线看| 欧美在线一区二区三区四| 一本色道久久综合亚洲精品小说| 久久激情视频久久| 亚洲国产精品va在线看黑人| 日韩国产在线播放| 美女福利视频一区| 久久久久久国产精品美女| 日韩精品中文字幕在线播放| 久久久久国色av免费观看性色| 97国产suv精品一区二区62| 狠狠躁18三区二区一区| 亚洲欧洲高清在线| 久久久精品久久| 日韩欧美在线中文字幕| 久久天天躁狠狠躁夜夜av| 久久久久久网站| 日韩女优在线播放| www.日韩av.com| 欧美激情精品久久久久久久变态| 久久久在线免费观看| 精品久久香蕉国产线看观看gif| 日韩综合中文字幕| 亚洲人成人99网站| 成人免费大片黄在线播放| 久久欧美在线电影| 欧美高清激情视频| 国自产精品手机在线观看视频| 国内精品一区二区三区| 久久国产视频网站| 日韩a**站在线观看| 自拍偷拍免费精品| 国产一区二区美女视频| 国产成人精品视频在线| 日韩中文字幕在线看|