JSP自建标签_2_传统标签

来源:互联网 发布:wind金融数据库 编辑:程序博客网 时间:2024/04/25 20:17

自定义标签

1.自定义标签技术出现的原因:

虽然有第三方组织提供了很多标签,但是这些都是一些通用标签,开发中常常需要根据业务需求使用jsp页面,这个时候通用的标签就不够用了,我们需要自己去开发标签库。

2.标签处理类生命周期

2.1传统标签处理类的生命周期

传统标签处理类在标签被第一次使用时创建实例,从此驻留内存为后续请求提供服务,其中每次标签执行都会依次执行setPageContext(PageContext pc) 、setParent(Tag t) 、doStartTag() 、doEndTag() 、~在服务器停止之前调用release()

 

注:doStartTag doEndTag方法来分别处理发现开始标签和发现结束标签时的代码,doStartTag可以通过返回值来控制标签体是否允许执行,doEndTag方法里可以通过返回值控制标签之后的剩余页面是否允许执行

     

<span style="color:#000000;">private PageContext pc = null;public int doEndTag() throws JspException {//EVAL_PAGE -- 结束标签之后的剩余页面需要去执行//SKIP_PAGE -- 结束标签之后的剩余页面不要去执行return 0;}public int doStartTag() throws JspException {try {String ip = pc.getRequest().getRemoteAddr();pc.getOut().write(ip);} catch (IOException e) {e.printStackTrace();}//Eval_Body_Include -- 开始标签之后的标签体需要执行//Skip_Body -- 开始标签之后的标签体不需要执行return 0;}public Tag getParent() {return null;}public void release() {}public void setPageContext(PageContext pc) {this.pc = pc;}public void setParent(Tag t) {}</span>

 注:这些函数的返回值可以控制标签的输出。

传统标签的这种开发方式,需要我们分析发现开始标签和发现结束标签时都需要执行什么代码,还需要分析到底要返回什么样的标签体控制程序执行,相对来说相当的繁琐.

 

编写方法:传统标签:

        (1)写一个类实现Tag接口

        (2)写一个tld文件,描述写好的类

        (3)在jsp页面中引入tld文件,就可以在jsp页面中使用自定义标签了

<?xml version="1.0" encoding="UTF-8"?><taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"><tlib-version>1.0</tlib-version><short-name>MyTag</short-name><uri>http://www.itheima.com/MyTag</uri><tag><name>showip</name><tag-class>com.itheima.tag.ShowIpTag</tag-class><body-content>empty</body-content></tag></taglib>


 

0 0
原创粉丝点击