jsp 定制标签(Custom Tag)

00刘建飞00

00刘建飞00

2016-02-19 09:49

下面图老师小编跟大家分享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-version1.0/tlib-version
jsp-version1.2/jsp-version
short-nametagSample/short-name
uri/tagSample/uri
descriptionA blank tag library template./description
tag
namewelcome/name
tag-classtagapp.HelloTag/tag-class
body-contentempty/body-content
display-namemy first tag/display-name
small-icon /small-icon
large-icon /large-icon
description /description
attribute
namename/name
requiredtrue/required
rtexprvaluetrue/rtexprvalue
typejava.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的标签来完成)
展开更多 50%)
分享

猜你喜欢

jsp 定制标签(Custom Tag)

Web开发
jsp 定制标签(Custom Tag)

可以使用多个jsp定制标签在JSP中达到接近servelt的处理效果

Java JAVA基础
可以使用多个jsp定制标签在JSP中达到接近servelt的处理效果

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

JSP标签库介绍

Web开发
JSP标签库介绍

JSP 自定义标签

Web开发
JSP 自定义标签

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

OpenCms的JSP标签详解

Web开发
OpenCms的JSP标签详解

用定制标签库和配置文件实现对JSP页面元素的访问控制

Java JAVA基础
用定制标签库和配置文件实现对JSP页面元素的访问控制

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Android实现图片循环播放的实例方法

Android实现图片循环播放的实例方法

Community Server专题二:体系结构

Community Server专题二:体系结构
下拉加载更多内容 ↓