第十四章 自定义JSP标签(书摘)
来源:互联网 发布:python 渗透 编辑:程序博客网 时间:2024/05/21 22:29
制作一个完整的Tag Library程序,包含3个步骤:
1. 创建标签的处理类(Tag Handler Class)
2. 创建标签库描述文件(Tag Library Descripter File)
3. 在JSP文件中引入标签库
JSP容器编译JSP网页时,如果遇到自定义标签,就会调用这个标签的处理类(Tag Handler Class)。处理标签的类必须扩展javax.servlet.jsp.TagSupport类或者javax.servlet.jsp.BodyTagSupport。
在TagSupport的构造方法中不能访问pageContext成员变量,因为此时JSP容器还没有调用setPageContext方法对pageContext进行初始化。
当JSP容器遇到自定义标签的起始标志,就会调用doStartTag()方法。doStartTag()方法返回一个整数值,用来决定程序后续流程。它有两个可选值:Tag.SKIP_BODY和Tag.EVAL_BODY_INCLUDE。前者表示标签之间的内容被忽略;后者表示标签之间的内容被正常执行。
当JSP容器遇到自定义标签的结束标志,就会调用doEndTag()方法。doEndTag()方法也返回一个整数值,用来决定程序后续流程。它有两个可选值:Tag.SKIP_PAGE和Tag.EVAL_PAGE。前者表示立刻停止执行JSP网页,网页上处理的静态内容和JSP程序均被忽略,任何已有的输出内容立刻返回到客户的浏览器上;后者表示按正常的流程继续执行JSP网页。
如果在标签中不包含自定义的属性,例如:
<prefix:MyTag attributer1 = "value1">
......
......
</prifix:MyTag>
那么在标签处理类中应该将这个属性作为成员变量,并且分别提供设置和读取属性的方法。
标签库描述(Tag Library Descriptor)文件,简称TLD,采用XML文件格式,定义了用户的标签库。TLD文件中的元素可以分为3类:
<taglib>:标签库元素 用来设定标签库的相关信息
<tag>:标签元素 用来定义一个标签
<attribute>:标签属性元素 用来定义标签的属性
如果Web应用中用到了自定义标签,则必须在web.xml文件中加入<taglib>元素,它用于声明所引用的标签所在的标签库:
<taglib>
<taglib-uri>/mytaglib</taglib-uri>
<taglib-location>/WEB-INF/mytaglib.tld</taglib-location>
</taglib>
在JSP文件中需要加入<%taglib uri = "/mytaglib" prefix = "mm"%>
uri用来指定Tag Libaray的标识符,它必须和web.xml中的<taglib-uri>属性保持一致。prefix表示在JSP网页中引用这个标签库中的标签时的前缀。
1. 创建标签的处理类(Tag Handler Class)
2. 创建标签库描述文件(Tag Library Descripter File)
3. 在JSP文件中引入标签库
JSP容器编译JSP网页时,如果遇到自定义标签,就会调用这个标签的处理类(Tag Handler Class)。处理标签的类必须扩展javax.servlet.jsp.TagSupport类或者javax.servlet.jsp.BodyTagSupport。
在TagSupport的构造方法中不能访问pageContext成员变量,因为此时JSP容器还没有调用setPageContext方法对pageContext进行初始化。
当JSP容器遇到自定义标签的起始标志,就会调用doStartTag()方法。doStartTag()方法返回一个整数值,用来决定程序后续流程。它有两个可选值:Tag.SKIP_BODY和Tag.EVAL_BODY_INCLUDE。前者表示标签之间的内容被忽略;后者表示标签之间的内容被正常执行。
当JSP容器遇到自定义标签的结束标志,就会调用doEndTag()方法。doEndTag()方法也返回一个整数值,用来决定程序后续流程。它有两个可选值:Tag.SKIP_PAGE和Tag.EVAL_PAGE。前者表示立刻停止执行JSP网页,网页上处理的静态内容和JSP程序均被忽略,任何已有的输出内容立刻返回到客户的浏览器上;后者表示按正常的流程继续执行JSP网页。
如果在标签中不包含自定义的属性,例如:
<prefix:MyTag attributer1 = "value1">
......
......
</prifix:MyTag>
那么在标签处理类中应该将这个属性作为成员变量,并且分别提供设置和读取属性的方法。
标签库描述(Tag Library Descriptor)文件,简称TLD,采用XML文件格式,定义了用户的标签库。TLD文件中的元素可以分为3类:
<taglib>:标签库元素 用来设定标签库的相关信息
<tag>:标签元素 用来定义一个标签
<attribute>:标签属性元素 用来定义标签的属性
如果Web应用中用到了自定义标签,则必须在web.xml文件中加入<taglib>元素,它用于声明所引用的标签所在的标签库:
<taglib>
<taglib-uri>/mytaglib</taglib-uri>
<taglib-location>/WEB-INF/mytaglib.tld</taglib-location>
</taglib>
在JSP文件中需要加入<%taglib uri = "/mytaglib" prefix = "mm"%>
uri用来指定Tag Libaray的标识符,它必须和web.xml中的<taglib-uri>属性保持一致。prefix表示在JSP网页中引用这个标签库中的标签时的前缀。
- 第十四章 自定义JSP标签(书摘)
- 第十四章 自定义JSP标签(书摘)
- 第四章 JSP技术(书摘)
- 第四章 JSP技术(书摘)
- JSP自定义标签(一):自定义JSP简单标签
- JSP自定义标签(tag)
- JSP自定义标签(一)
- jsp自定义标签(一)
- jsp自定义标签(二)
- JSP自定义标签(1)
- JSP自定义标签(2)
- JSP自定义标签(3)
- JSP 自定义标签(Tag)
- jsp 自定义标签(1)
- jsp 自定义标签(2)
- JSP自定义标签(java)
- JSP自定义标签(一)
- 周记(jsp自定义标签)
- 角色在策略中的转变
- FreeBSD/Linux 中避免 /etc/resolv.conf 被改写 + 几种解决办法的比较 !
- 破解教程 第十一课 crackme破解教程(用trw2000追注册码)=====破解经典句式篇
- 为什么老是IOException
- 惹急女孩的二十件事
- 第十四章 自定义JSP标签(书摘)
- 学习方法
- 破解教程 第十二课 crackme破解教程(用trw2000追注册码)=====用w32dasm辅助追注册码篇
- 改变窗口的图标
- 破解教程 第十三课 搜索“S”大法破解(TRW2000下)
- 破解教程 第十四课 用S命令破解crackme实例(TRW2000下)
- 月排名进5000-俱乐部
- 破解教程 第十五课 汇编菜鸟的好助手------r fl z命令
- 破解教程 第十六课 关于使用?和D的问题