国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

自定義jsp標簽

2019-11-08 03:12:18
字體:
來源:轉載
供稿:網友

開發自定義標簽步驟

1.創建自定義標簽處理類(Tag Handler Class)

2.創建TLD標簽庫描述文件(Tag Library Desciptor)

web應用使用標簽:

1.標簽處理類和相關類.class文件放到WEB-INF/CLASS目錄下

2.把TLD放到WEB-INF或者其自定義的子目錄下

3.在web.xml中聲明引用的標簽庫

4.在jsp中使用標簽庫中的標簽。

JSP TAG API

          運行jsp文件時遇到自定義的標簽,就會調用這個標簽的處理類相關方法。處理類可以繼承TagSupport類或者BodyTagSupport。

JspTag接口

        這是一個標識接口,沒有任何方法。作為Tag和SimpleTag的共同接口。實現Tag接口的標簽為傳統標簽。實現SimpleTag的標簽為簡單標簽。

Tag接口

setPageContext(PageContext pc)//servlet容器調用這個方法,像當前Tag對象傳遞PageContext對象setParent(Tag t)//設置父標簽getParent()release()//釋放Tag占用的資源時調用doStartTag()當servlet容器遇到標簽起始標志時調用這個方法,返回一個整數值,決定后續流程Tag.SKIP_BODY表示標簽內主體內容被忽略Tag.EVAL_BODY_INCLUDE表示標簽內主體被正常執行doEndTag()//標簽結束時調用。返回整數值,決定后面流程Tag.SKIP_PAGE 標簽后面的內容不執行,把已有的內容返回Tag.EVAL_PAGE 正常執行jsp代碼

執行jsp內容遇到自定義標簽,就回去找Tag對象,沒找到就創建一個,放到緩存中重復使用(web應用被終止是會調用relesse()方法)。創建完對象后調用對象相關方法。1.servlet容器調用setPageContext(PageContext pc),setParent(Tag t),不存在父標簽就設置null.

2.servlet容器調用一系列set方法,設置屬性,沒有屬性就不用。

3.doStartTag()根據返回值做相關處理。

4.doEndTag()根據返回值做相關處理。

IterationTag接口

繼承Tag接口,增加了反復執行主體內容的功能。

doAfterBody()方法在執行玩主體內容后調用,不執行主體內容不調用。

返回整數值,決定是否重復執行。

Tag.SKIP_BODY不重復執行主體內容了

Tag.EVAL_BODY_AGAIN重復執行標簽主體內容

BodyTag接口--添加了直接訪問和操縱標簽主體的功能

setBodyContent(BodyContent bc)傳遞一個用于緩存標簽結果的BodyContent對象。

doInitBody():setBodyContent()執行完后,執行標簽主體之前調用,為執行標簽主體做初始化工作。

標簽主體為空或者doStartTag返回skip_body或者eval_body_include,上面兩個方法不執行。

標簽主體不為空以及doStartTag返回BodyTag.EVAL_BODY_BUFFERED才執行。

TagSupport和BodyBodySupport--自定義的標簽繼承這兩個中的一個就行了。

創建message標簽的處理類messageTag

1.創建資源文件

xxx.PRoperties放在WEB-INF目錄下,使用鍵值對的形式。

2.web啟動時加載資源文件

用一個servlet來加載資源文件,設置start-on-load為1,啟動時就加載。保存在應用范圍內。

3.創建messageTag

創建標簽庫描述文件

采用XML格式,其中元素分為3類:

<taglib>標簽庫元素

<tag>標簽元素

<attribute>標簽屬性元素

1.taglib

tlib-version標簽庫版本

jsp-version   jsp版本

short-name  標簽庫前綴名(prefix)

uri   設定標簽庫的唯一訪問標識符

info 說明信息

2.tag

name  設置標簽的名字

tag-class 處理類

body-content 標簽主體類型 empty主體為空,scriptless主體不為空,包含EL表達式和jsp內置標簽。jsp主體不為空,比scriptless多了一個腳本元素<%! %>等等。tagdependant 主體不為空,標簽主體內容由處理類解析處理。

info 說明信息

3.attribute

name  屬性名

required  屬性是否為必須,默認false

rtexprvalue 屬性值是否可以基于<%=%>等java表達式和EL表達式

把文件命名問xxx.tld

在web應用中使用標簽

在web.xml加入taglib

<taglib><taglib-uri></taglib-uri>//標簽庫唯一標識符<taglib-location></taglib-location>//tld文件位置</taglib>然后使用jsp就可以訪問<標簽庫的短名稱:tag屬性的name  屬性=屬性值  />

<%@ taglib prefix="xx" uri="/xxx"%>


上一篇:jsp詳解

下一篇:jsp中文亂碼

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 霍城县| 屯留县| 安阳市| 普格县| 南木林县| 吉木萨尔县| 肃宁县| 延边| 固原市| 砚山县| 洛阳市| 凤城市| 四子王旗| 永胜县| 延边| 惠来县| 天门市| 攀枝花市| 饶阳县| 安平县| 义马市| 准格尔旗| 房山区| 庆安县| 曲靖市| 自治县| 阿巴嘎旗| 昂仁县| 外汇| 中卫市| 洛宁县| 马关县| 东平县| 峨眉山市| 建宁县| 九龙县| 饶阳县| 仁布县| 枣强县| 秦安县| 伊宁县|