天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

jsp 定制標簽(Custom Tag)

怎樣自己定制標簽(Custom Tag)
(整理的學習筆記)
步驟1、創建一個Tag handler class(標記處理器類)
package Javax.servlet.jsp.tagext
開發空Body的標簽處理器類----->1)implements Tag 2)extends TagSupport
空Body的標簽處理器類需要覆蓋方法:
doStartTag()
返回值:Tag.SKIP_BODY
doEndTag()
返回值:
1)Tag.EVAL_PAGE:讓標簽下面的內容繼續執行
2)Tag.SKIP_PAGE:讓標簽下面的內容不執行
開發帶Body的標簽處理器類----->1)implements BodyTag 2)extends BodyTagSupport
帶Body的標簽處理器類需要覆蓋方法
doStartTag()
返回值:
BodyTag.SKIP_BODY:執行后直接調用doEndTag()方法
BodyTag.EVAL_BODY_INCLUDE:執行后直接調用doAfterBody()方法
BodyTag.EVAL_BODY_BUFFERED:
doEndTag()
返回值:
BodyTag.EVAL_PAGE:標簽下面的內容繼續執行
BodyTag.SKIP_PAGE:標簽下面的內容不執行
doAfterBody()
返回值:
BodyTag.SKIP_BODY:執行后調用doEngTag()方法
BodyTag.EVAL_BODY_AGAIN:執行后調用doAfterBody()方法
步驟2、創建一個tld文件(tag library descriptor)
一個XML格式的文件,用于對標記進行描述
通常放在WEB-INF目錄下 (/WEB-INF/*.tld)
abc.tld
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://Java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<!-- template test -->
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>tagSample</short-name>
<uri>/tagSample</uri>
<description>A blank tag library template.</description>
<tag>
<name>welcome</name>
<tag-class>tagapp.HelloTag</tag-class>
<body-content>empty</body-content>
<display-name>my first tag</display-name>
<small-icon> </small-icon>
<large-icon> </large-icon>
<description> </description>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>Java.lang.String</type>
</attribute>
</tag>
</taglib>
步驟3.創建一個JSP文件
<%@taglib uri="[tld_url]" prefix=""%>
<%@taglib uri="/WEB-INF/abc.tld" prefix="mike"%>
...
<mike:welcome name=""/>
uri的值可以是:
A、/WEB-INF/mytag.tld -----> uri="/WEB-INF/mytag.tld"
B、tld文件中 <uri>/tagSample</uri> ------> uri="/tagSample"
C、利用web.xml文件映射tld文件與taglib-uri的值 -----> uri="/abc"
<taglib>
<taglib-uri>/abc</taglib-uri>
<taglib-location>/WEB-INF/mytag.tld</taglib-location>
</taglib>
帶Body的標簽處理器類的方法的注釋:
doStartTag()
return value: SKIP_BODY 空BODY標記
EVAL_BODY_INCLUDE 帶BODY標記,執行流程進入doAfterBody
EVAL_BODY_BUFFERED 帶BODY標記,執行流程進入setBodyContent
doEndTag()
return value: SKIP_PAGE 忽略標記后剩余的JSP內容
EVAL_PAGE 繼續執行標記后剩余的JSP內容
doAfterBody()
return value: SKIP_BODY 結束doAfterBody()方法,流程進入doEndTag()
EVAL_BODY_AGAIN 繼續執行doAfterBody()方法
SimpleTagSupport
較好的練習題:
一、
1、模仿jstl標簽庫開發下列標簽:
1)<sql:setDataSource>
屬性有:
driver:必須的,可以用表達式
url;必須的,可以用表達式
user:必須的,可以用表達式
password:必須的,可以用表達式
2)<sql:query>
屬性有:
dataSource:必須的,可以用表達式
sql:必須的,可以用表達式
3)<sql:update>
屬性有:
dataSource:必須的,可以用表達式
sql:必須的,可以用表達式
2、開發類似于<c:forEach>的標簽,可以遍歷一個集合對象(可選,如不能完成,可直接利用jstl的標簽來完成)

jsp技術jsp 定制標簽(Custom Tag),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 精品国产中文字幕在线视频 | 国产精品99久久久久久宅男AV | 黑丝制服影院 | 国产h视频在线观看免费 | 黄页网站免费视频大全9 | 精品无码久久久久久久动漫 | 狠狠色狠狠色综合日日32 | 亚洲欧美综合乱码精品成人网 | 精品午夜久久福利大片免费 | 又硬又粗又大一区二区三区视频 | 一本色道久久综合亚洲精品加 | 99国产精品成人免费视频 | 亚洲欧美中文字幕5发布 | 中文字幕乱码一区久久麻豆樱花 | 91亚洲 欧美 国产 制服 动漫 | 亚洲偷偷自拍免费视频在线 | 国产精品爽爽久久久久久无码 | 正在播放一区二区 | 99热久久视频只有精品6国产 | 簧片在线观看 | 久久国产精品免费网站 | 老师的蕾丝小内内湿透了 | 全球真实小U女视频合集 | 娇妻中日久久持久久 | 亚洲日本欧美日韩高观看 | 午夜影视不用充钱的免费 | 99国产精品综合AV无码 | 欧美男男网站免费观看videos | 中文字幕精品视频在线 | 日本一本2017国产 | 扒开双腿疯进出爽爽爽动态图 | 日韩在线av免费视久久 | 性派对xxxhd 性啪啪chinese东北女人 | 一个人的视频在线观看免费观看 | 黑人巨大两根一起挤进欧美 | 日本又黄又裸一级大黄裸片 | 幻女FREE性俄罗斯学生 | X8X8拨牐拨牐X8免费视频8午夜 | 少妇无码吹潮久久精品AV | 欧美互交人妖247 | 十七岁日本免费完整版BD |