JavaWeb之 JSP:自定义标签
来源:互联网 发布:sai mac没压感 编辑:程序博客网 时间:2024/05/29 16:56
https://www.cnblogs.com/vmax-tam/p/4145334.html
自定义标签的开发步骤
步骤一
编写一个普通的java类,继承TagSupport类~
package com.vmaxtam.dotest;import javax.servlet.jsp.tagext.TagSupport;public class MyTagTest extends TagSupport {}
步骤二
重写父类的setPageContext方法,用于得到当前jsp页面的pageContext对象。
public class MyTagTest extends TagSupport { private PageContext pageContext; @Override public void setPageContext(PageContext pageContext) { this.pageContext=pageContext; }}
步骤三
重写父类的doStartTag方法,里面写上你定义的标签的java操作,这里我定义的标签用作向浏览器输出一大段信息:
@Override public int doStartTag() throws JspException { try { pageContext.getResponse().getWriter().write("这是我写的一大段信息:ABCDEFGHIJKLMNOPQRSTUVWXYZ"); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException(e); } return super.doStartTag(); }
这样就完成一个标签处理程序了~别着急,写完程序我们还需要注册它。
步骤四
在你的web应用目录下,找到WEB-INF文件夹,在里面新建一个tld类型的文件
然后再里面注册你的标签吧:
<?xml version="1.0" encoding="ISO-8859-1" ?><!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"><taglib> <tlib-version>1.0</tlib-version><!-- 代表标签库的版本号 --> <jsp-version>1.2</jsp-version><!-- 代表jsp的版本 --> <short-name>mtt</short-name><!-- 你的标签库的简称 --> <uri>http://vmaxtam.com/mytag</uri><!-- 你标签库的引用uri --> <tag> <name>mytah</name><!-- 你定义的标签的名称 --> <tag-class>com.vmaxtam.dotest.MyTagTest</tag-class><!-- 对应的标签处理程序:包名+类名 --> <body-content>JSP</body-content><!-- 标签体内容的格式 --> <!-- 标签需要的属性 --> <attribute> <name>modelClass</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>parentId</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib>
如果你忘记了怎么写,可以参考jstl里的tld文件~
步骤五
你要在使用你定义的标签的jsp页面导入你的标签库!就像导入类包一样
只需在jsp页面写上下面内容:
<%@taglib uri="http://vmaxtam.com/mytag" prefix="mmt" %>
步骤6
以上5步已经把准备工作都做好了~下面我们来使用标签吧!
<html> <head> <title>My JSP 'testit.jsp' starting page</title> </head> <body> <mmt:mytag></mmt:mytag> </body></html>
这样,我们就完成了一次自定义标签了,虽然我们知道步骤,但是不知道为什么这样就行,所以,下面来说一下它的原理:
自定义标签的原理
1)当服务器打开时,就会加载WEB-INF下的资源文件,包括web.xml 和 tld文件,把它们加载到内存
2)我们在浏览器输入http://localhost:8080/TestArea/testit.jsp来访问jsp页面
3)服务器读取testit.jsp里的内容,当读到
<%@taglib uri="http://vmaxtam.com/mytag" prefix="mmt" %>
这一句的时候,就会在内存中找是否存在uri为http://vmaxtam.com/mytag的tld文件,找不到就会报错
4)继续读取jsp页面,读到<mmt:mytag>
这个标签的时候,就会通过uri去找到tld文件,在tld文件中找到mytab是否被定义,是的话就得到它的tag-class的内容,然后去找到它对应的标签处理程序
5)实例化标签处理程序,利用生成的对象调用它里面的方法
这里服务器对标签处理程序里的方法也有一定的调用顺序
A)void setPageContext(PageContext pc) –传入pageContext对象
B)void setParent(Tag t) –如果有父标签,传入父标签对象,如果没有,则传入null
C)int doStartTag() –开始执行标签时调用。
D)int doEndTag() –结束标签时调用
E)void release() –释放资源
如果你没有重写上面的方法,系统将会调用它的父类里的方法~
- JavaWeb之JSP自定义标签
- JavaWeb之 JSP:自定义标签
- JavaWeb学习心得之JSP自定义标签
- javaweb jsp自定义标签
- javaWeb之自定义标签
- JavaWeb开发之十七:jsp自定义标签开发入门
- JavaWeb学习心得之JSP标签
- JavaWeb -- Jsp 自定义标签的使用
- 【JavaWeb探究】自定义JSP标签(一)
- 【JavaWeb探究】自定义JSP标签(二)
- 【JavaWeb探究】自定义JSP标签(三)
- JSP之自定义标签
- JSP之自定义标签
- JSP之自定义标签
- JavaWeb学习心得之JSP标签库打包
- JavaWeb学习心得之自定义传统标签
- Jsp学习之 自定义标签
- JSP自定义标签之 SimpleTag
- 细数2017年网络安全事件
- ZooKeeper示例 实时更新server列表
- Windows程序设计 读书笔记(3)
- 无人驾驶汽车系统入门(六)——基于传统计算机视觉的车道线检测(1)
- centos ftp 安装
- JavaWeb之 JSP:自定义标签
- 二分查找法
- Python之路【第3天】
- Android业务组件化之URL Scheme使用
- 炫龙毁灭者DDPro笔记本bios设置u盘启动教程
- mysql 5.5升级5.6以上版本
- SVN提交是missing状态处理
- 质量管理体系和行业标准
- Android通知之通知栏点击通知后返回正在运行的程序,而不是一个新Activity