#笔记#圣思园 JavaWeb 第44讲——自定义标签库

来源:互联网 发布:朋友圈发广告软件 编辑:程序博客网 时间:2024/06/06 04:11

1.创建客户化JSP标签的步骤

(1)创建标签处理类

(2)创建标签库描述文件

(3)在JSP文件中引入标签库,然后插入标签,例如:<mm:hello/>        (<标签前缀:标签名>)

2.JSP Tag API

Servlet容器编译JSP网页时,如果遇到自定义标签,就会调用这个标签的处理类

标签处理类必须继承以下两个类之一:

javax.servlet.jsp.tagext.TagSupport类:doEndTag()方法和doStartTag()方法

javax.servlet.jsp.tagext.BodyTagSupport类:它是上面那个类的子类

doStartTag:Servlet容器遇到自定义标签的起始标识时,调用该方法

doStartTag:Servlet容器遇到自定义标签的结束标识时,调用该方法

setPageContext(PageContext pc):设置PageContext对象,该方法由Servlet容器在调用doStartTag

3.示例1:创建hello标签。

定义一个名字为mytaglib的标签库,包含一个hello标签,这个标签能将JSP页面中所有的<mm:hello/>解析为字符串“hello”

(1)创建标签处理类,继承TagSupport或BodyTagSupport

MyTag.java


(2)创建标签库描述文件  .tld    存放在与web.xml在同一个目录

mytag.tld


(3)在JSP中引入标签库,然后插入标签

执行结果:


4.示例2:创建message标签

创建一个能替换test应用中JSP网页的静态文本的标签,标签名为message,他放在mytaglib标签库中

标签处理类:MyTag2.java


message.properties(属性文件)


(初始化时加载properties文件,把信息加载到内存)InitServlet2.java

tld文件

tag2.jsp


首先,有一个初始化的Servlet,服务器启动时,将message.properties文件的内容加载到Properties对象里,然后将Properties对象放置到application范围内

当访问tag2.jsp时,遇到标签结束,调用doEndTag方法。这个方法执行时,从application范围内将Properties对象拿出来,自动调用setKey,得到页面上的key,调用getProperty(key),返回对应的value值

0 0