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
- JSP自建标签_2_传统标签
- jsp自建tag标签
- jsp传统自定义标签
- JSP传统标签开发
- jsp传统标签开发
- 自定义JSP标签详解------传统标签
- jsp-自定义标签-传统标签开发
- Jsp传统标签库开发
- JSP自建标签_1_TLD文件描述
- JSP自定义标签(二):JSP传统标签
- JSP第六篇【自定义标签之传统标签】
- JSP自建标签_3_简单标签自定义_为标签定义属性
- JavaWeb开发之十六:jsp传统标签开发
- JavaWeb总结二十四、jsp传统标签开发
- java web学习总结24:jsp传统标签开发
- 自定义标签--传统标签--简单标签--JSTL核心标签库
- JSP标签
- jsp标签
- android属性android:largeHeap
- Maven使用第三方jar文件的两种方法
- 统计学习方法——CART, Bagging, Random Forest, Boosting
- 序列号型CrackMe逆向之OD技巧篇
- 用pngcrush反编译ios app 资源文件
- JSP自建标签_2_传统标签
- 【POJ3435】Sudoku Checker,注意:这不是数独!!!!
- 这些软件还是很不错的
- 关于java中split的使用
- 第十周上机项目三血型统计
- 数据结构(C++版)笔记整理——第四章
- DedeCMS提示"Call to a member function GetInnerText()"解决办法
- 在Jenkins中配置执行远程shell命令
- Objective-C的属性和成员变量用法及关系浅析