婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > JSP自定義標(biāo)簽基礎(chǔ)知識(shí)學(xué)習(xí)

JSP自定義標(biāo)簽基礎(chǔ)知識(shí)學(xué)習(xí)

熱門標(biāo)簽:聊城智能電銷機(jī)器人外呼 如何用中國(guó)地圖標(biāo)注數(shù)字點(diǎn) 地圖標(biāo)注市場(chǎng)怎么樣 南京新思維電話機(jī)器人 企業(yè)怎么在聯(lián)通申請(qǐng)400電話 泰州泰興400電話 怎么申請(qǐng) 南昌市地圖標(biāo)注app 百度地圖添加標(biāo)注圖標(biāo)樣式 好操作的電話機(jī)器人廠家

在實(shí)際的開發(fā)中,如為了簡(jiǎn)化JSP中出現(xiàn)大量的JSP腳本,那么我們需要使用標(biāo)準(zhǔn)標(biāo)簽庫(kù)和EL表達(dá)式,但是和新標(biāo)簽庫(kù)中提供的標(biāo)簽是有限的,不可能完全滿足開發(fā)的需要。如:分頁(yè)。因此需要學(xué)習(xí)如何自定義自己的標(biāo)簽庫(kù)。

如果要實(shí)現(xiàn)自定義標(biāo)簽,那么需要如下幾步:

編寫標(biāo)簽處理類
需要繼承或者實(shí)現(xiàn)相關(guān)的類或者接口

編寫標(biāo)簽描述文件
該文件是一個(gè)XML文件,而且必須放在網(wǎng)站的WEB-INF目錄中

在JSP中引入標(biāo)簽且使用
使用taglib指令引入標(biāo)簽庫(kù),隨后使用。

自定標(biāo)簽的類體系

詳細(xì)了解下一下幾個(gè)類和接口:

---| JspTag接口

該接口是一個(gè)典型的標(biāo)記接口。主要標(biāo)記實(shí)現(xiàn)該接口的類可以處理標(biāo)簽。Seralizable

----| Tag接口

該接口主要描述的是標(biāo)簽處理類的共性,但是實(shí)現(xiàn)該接口的類不能處理標(biāo)簽體,該接口中定義了標(biāo)簽處理類和JSP頁(yè)面之間的通信協(xié)議。而且提供生命周期方法如:在標(biāo)簽開始和接結(jié)束的時(shí)候自動(dòng)執(zhí)行的方法。

------| TagSupport類

主要負(fù)責(zé)處理標(biāo)簽的屬性。

-------| BodyTagSupport類

該類主要的是處理標(biāo)簽的標(biāo)簽體。

  體驗(yàn)

1. 處理類

public class HelloHanler implements Tag {
  private PageContext pageContext = null;
  // 標(biāo)簽結(jié)束的時(shí)候執(zhí)行
  public int doEndTag() throws JspException {
    return 0;
  }
  // 標(biāo)簽開始的時(shí)候執(zhí)行
  public int doStartTag() throws JspException {
    // 給頁(yè)面輸出一個(gè)hello信息
    JspWriter out = pageContext.getOut();
    // 輸出信息
    String info = "hello custom tag";
    try {
      out.write(info);
    } catch (IOException e) {
      e.printStackTrace();
    }
    return 0;
  }
  // 獲取其父標(biāo)簽
  public Tag getParent() {
    return null;
  }
  // 釋放
  public void release() {

  }
  // 設(shè)置jsp上下文對(duì)象
  public void setPageContext(PageContext pc) {
    this.pageContext = pc;
  }
  // 設(shè)置父標(biāo)簽
  public void setParent(Tag t) {

  }
}

2. 描述文件

?xml version="1.0" encoding="UTF-8"?>
taglib 
  xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
  version="2.1">
 !-- 2. 編寫標(biāo)簽庫(kù)描述文件 --> 
 tlib-version>1.0/tlib-version>
 short-name>jnb/short-name>
  tag> 
  name>hello/name>
  tag-class>cn.itcast.test.HelloHanler/tag-class>
  body-content>empty/body-content>
 /tag>
/taglib>  

3. 引入

%@taglib uri="/WEB-INF/test.tld" prefix="jnb"%>
   br/>
jnb:hello/>

JSP1.2進(jìn)行自定義標(biāo)簽開發(fā)

自定義一個(gè)現(xiàn)實(shí)日期的標(biāo)簽。

1. 實(shí)現(xiàn)可以處理標(biāo)簽屬性的標(biāo)簽處理類

public class ShowDate extends TagSupport {
  // 為了便于獲取屬性,那么直接在處理類中定義和屬性同名的屬性變量即可且提供get和set方法
  private String pattern;
  public String getPattern() {
    return pattern;
  }
  public void setPattern(String pattern) {
    this.pattern = pattern;
  }

  // 標(biāo)簽開始的時(shí)候自動(dòng)執(zhí)行
  public int doStartTag() throws JspException {
    // 創(chuàng)建日期對(duì)象
    Date date = new Date();
    // 創(chuàng)建格式化對(duì)象
    SimpleDateFormat format = new SimpleDateFormat(getPattern());
    // 格式化
    String str = format.format(date);
    // 獲取JSP上下文對(duì)象
    PageContext pageContext = this.pageContext;
    // 獲取JSP的OUT輸出流
    JspWriter out = pageContext.getOut();
    // 輸出
    try {
      out.write(str);
    } catch (IOException e) {
      e.printStackTrace();
    }
    return super.doStartTag();
  }
}

2. 描述文件

taglib        標(biāo)簽庫(kù)描述文件的根元素
  xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" 
  version="2.1">
 !-- 2. 編寫標(biāo)簽庫(kù)描述文件 --> 
 tlib-version>1.0/tlib-version>     指定標(biāo)簽庫(kù)的版本(必須)
 short-name>jnb/short-name>       指定標(biāo)簽庫(kù)的簡(jiǎn)稱(必須)
 tag>                    指定一個(gè)標(biāo)簽開始
  name>showdate/name>           標(biāo)簽名
  tag-class>cn.itcast.custom.ShowDate/tag-class>   指定標(biāo)簽處理類
  body-content>empty/body-content>   指定標(biāo)簽體,JSP(有)empty(沒有)
  attribute>               描述屬性
    name>pattern/name>         屬性名
    required>true/required>     屬性的說明信息
    rtexprvalue>true/rtexprvalue>   屬性值的說明信息
  /attribute>
 /tag>
/taglib> 

3.  引入和使用

%@taglib uri="/WEB-INF/date.tld" prefix="date"%>
   date:showdate pattern="yyyy年MM月dd日 a E"/>

實(shí)現(xiàn)帶標(biāo)簽體的自定義標(biāo)簽

1. 標(biāo)簽處理類

public class ShowDateByBody extends BodyTagSupport {
  // 為了便于獲取屬性,那么直接在處理類中定義和屬性同名的屬性變量即可且提供get和set方法
  private String pattern;
  public String getPattern() {
    return pattern;
  }
  public void setPattern(String pattern) {
    this.pattern = pattern;
  }

  // 標(biāo)簽開始的時(shí)候自動(dòng)執(zhí)行
  public int doStartTag() throws JspException {
    // 創(chuàng)建日期對(duì)象
    Date date = new Date();
    // 創(chuàng)建格式化對(duì)象
    SimpleDateFormat format = new SimpleDateFormat(getPattern());
    // 格式化
    String str = format.format(date);
    // 獲取JSP上下文對(duì)象
    PageContext pageContext = this.pageContext;
    // 獲取JSP的OUT輸出流
    JspWriter out = pageContext.getOut();
    // 獲取標(biāo)簽提的內(nèi)容
    BodyContent body = this.getBodyContent();
    String tag_body = body.getString();
    str = "font color='red'>"+tag_body+"/font>"+str;
    // 輸出
    try {
      out.write(str);
    } catch (IOException e) {
      e.printStackTrace();
    }
    return super.doStartTag();
  }
}

2. 描述文件

 tag> 
  name>showdate2/name>
  tag-class>cn.itcast.custom.ShowDateByBody/tag-class>
  body-content>JSP/body-content>
  attribute>
    name>pattern/name>
    required>true/required>
    rtexprvalue>true/rtexprvalue>
  /attribute>
 /tag>

3. 引入和使用

date:showdate2 pattern="yyyy-MM-dd">系統(tǒng)時(shí)間:/date:showdate2>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。

您可能感興趣的文章:
  • 在asp.net(C#)中采用自定義標(biāo)簽和XML、XSL顯示數(shù)據(jù)
  • jsp 自定義標(biāo)簽實(shí)例
  • IE Firefox 使用自定義標(biāo)簽的區(qū)別
  • JSP自定義標(biāo)簽Taglib實(shí)現(xiàn)過程重點(diǎn)總結(jié)
  • jsp自定義標(biāo)簽技術(shù)(實(shí)現(xiàn)原理與代碼以及平臺(tái)搭建步驟)
  • JSP自定義標(biāo)簽獲取用戶IP地址的方法
  • jsp簡(jiǎn)單自定義標(biāo)簽的forEach遍歷及轉(zhuǎn)義字符示例
  • ThinkPHP模板自定義標(biāo)簽使用方法
  • ThinkPHP分組下自定義標(biāo)簽庫(kù)實(shí)例
  • JSP自定義標(biāo)簽rtexprvalue屬性用法實(shí)例分析

標(biāo)簽:開封 白銀 臨汾 吉林 烏蘭察布 銅川 自貢 山南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《JSP自定義標(biāo)簽基礎(chǔ)知識(shí)學(xué)習(xí)》,本文關(guān)鍵詞  JSP,自定義,標(biāo)簽,基礎(chǔ),知識(shí)學(xué)習(xí),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《JSP自定義標(biāo)簽基礎(chǔ)知識(shí)學(xué)習(xí)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于JSP自定義標(biāo)簽基礎(chǔ)知識(shí)學(xué)習(xí)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩精品一区二区三区蜜臀 | 欧美男女性生活在线直播观看| 久久在线免费观看| 在线欧美日韩精品| 亚洲国产aⅴ成人精品无吗| 欧洲精品中文字幕| 丝袜美腿一区二区三区| 日韩精品一区二区在线| 久久99精品国产91久久来源| 蜜臀久久99精品久久久久宅男| 欧美一区二区啪啪| 91精品在线免费| 一区二区三区 在线观看视频| 秋霞国产午夜精品免费视频| 久久亚洲综合av| 亚洲日穴在线视频| 欧美日本精品一区二区三区| 色久优优欧美色久优优| 色妞www精品视频| 国产精品一二三在| 经典三级在线一区| 久久99久久久欧美国产| 欧美系列在线观看| 欧美伊人久久久久久午夜久久久久| 亚洲成人av免费| 亚洲精品在线免费观看视频| 亚洲高清免费在线| 久久色中文字幕| 国产日韩欧美a| 国产欧美视频一区二区| 国产精品国产三级国产普通话99| 久久精品视频一区二区| 国产精品国产三级国产普通话蜜臀| ...av二区三区久久精品| 欧美午夜精品久久久久久孕妇 | 色www精品视频在线观看| 成人激情免费视频| 97精品视频在线观看自产线路二| 国产精品 欧美精品| 99在线热播精品免费| 99精品1区2区| 欧美视频精品在线观看| 欧美日韩高清在线播放| 精品久久久久av影院| 国产午夜三级一区二区三| 中文字幕中文字幕中文字幕亚洲无线| 亚洲精品国产精华液| 日韩经典一区二区| 国产成人精品1024| 欧美丝袜第三区| 91精品欧美福利在线观看 | 中文字幕亚洲不卡| 午夜精彩视频在线观看不卡| 精品一区二区三区视频| 91丨九色丨尤物| 制服丝袜av成人在线看| 在线观看一区二区精品视频| 欧美r级在线观看| 一级特黄大欧美久久久| 免费观看日韩电影| 粉嫩高潮美女一区二区三区| 国产精品久久久久久久久免费相片| 欧美午夜精品一区| 欧美色偷偷大香| 精品视频免费看| 欧美裸体bbwbbwbbw| 欧美视频一区二| 欧美日本不卡视频| 欧美一级夜夜爽| 国产91富婆露脸刺激对白| 国产精品中文字幕日韩精品 | 久久成人免费网| 日本乱码高清不卡字幕| 国产精品欧美一区喷水| 国产欧美精品一区二区三区四区| 中文一区在线播放 | 99re这里只有精品首页| 日本精品裸体写真集在线观看 | 欧美色网站导航| 久久综合资源网| 亚洲精品欧美综合四区| 国产成人午夜99999| 日韩一级高清毛片| 日韩和的一区二区| 欧美在线一二三| 1024亚洲合集| 99精品一区二区| 国产精品毛片久久久久久| 麻豆精品国产91久久久久久| 国产无人区一区二区三区| 亚洲欧洲性图库| 7777精品伊人久久久大香线蕉经典版下载 | 欧美在线观看禁18| 欧美日韩精品欧美日韩精品一| 精品国精品自拍自在线| 亚洲精品成人悠悠色影视| 色狠狠av一区二区三区| 欧美日韩成人一区| 久久网站热最新地址| 亚洲视频一区二区免费在线观看 | 91网站最新网址| 欧美巨大另类极品videosbest| 精品日产卡一卡二卡麻豆| 中文字幕一区在线观看| 三级一区在线视频先锋| 国产精品一区在线观看乱码 | 国产精品久久久久久久久免费樱桃| 亚洲色图在线看| 免费黄网站欧美| 欧美亚洲动漫另类| 欧美国产一区视频在线观看| 视频在线观看一区| 成人永久aaa| 久久一区二区三区国产精品| 亚洲电影你懂得| 国产69精品久久777的优势| 欧美亚洲国产一区在线观看网站| 国产亚洲一区二区在线观看| 午夜欧美电影在线观看| 不卡av在线免费观看| 久久伊人中文字幕| 日本伊人精品一区二区三区观看方式| www.色综合.com| 中文字幕高清不卡| 国产成人在线网站| 日韩亚洲欧美综合| 香蕉影视欧美成人| 91欧美一区二区| 亚洲免费观看高清完整版在线观看| 韩国v欧美v亚洲v日本v| 欧美一三区三区四区免费在线看| 亚洲国产精品嫩草影院| 色悠悠久久综合| 亚洲激情五月婷婷| 色一情一伦一子一伦一区| 亚洲欧美一区二区三区久本道91| 成人av资源在线观看| 中文字幕av不卡| 99视频超级精品| 一区二区理论电影在线观看| 色悠悠久久综合| 丝袜美腿亚洲综合| 欧美一级片免费看| 韩日欧美一区二区三区| 久久久欧美精品sm网站| 国产成人8x视频一区二区| 亚洲欧美在线视频观看| 欧美性色综合网| 免费成人美女在线观看.| 欧美不卡视频一区| 懂色av中文一区二区三区| 国产精品电影一区二区三区| 91国模大尺度私拍在线视频| 亚洲成人动漫在线免费观看| 欧美美女喷水视频| 久久电影网电视剧免费观看| 久久久久久久久久美女| aaa欧美大片| 天堂一区二区在线| 精品日韩欧美在线| 成人av午夜电影| 性做久久久久久免费观看欧美| 9191国产精品| 激情综合五月天| 亚洲男人的天堂一区二区| 欧美日韩一区二区在线观看| 狠狠色丁香婷综合久久| 欧美激情在线一区二区三区| 色哟哟亚洲精品| 七七婷婷婷婷精品国产| 久久久777精品电影网影网| 色美美综合视频| 国产一区二区视频在线播放| 国产精品久久久一区麻豆最新章节| 欧美三级午夜理伦三级中视频| 精品亚洲国产成人av制服丝袜 | 日本亚洲天堂网| 国产精品久久久久精k8| 91精品国产综合久久精品性色| 成人激情动漫在线观看| 蜜桃一区二区三区在线观看| 国产精品久久久一本精品 | 1024国产精品| 欧美videossexotv100| 色综合色综合色综合| 狠狠色综合日日| 婷婷综合在线观看| 亚洲精品日韩专区silk| 亚洲国产高清在线观看视频| 91精品国产综合久久精品麻豆| 色美美综合视频| 一本到一区二区三区| 成人avav影音| 国产乱国产乱300精品| 日韩av中文字幕一区二区三区| 一区在线观看免费| 国产精品天干天干在观线 | 久久久久久97三级| 日韩欧美黄色影院| 欧美精品第1页|