#笔记#圣思园 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值
- #笔记#圣思园 JavaWeb 第44讲——自定义标签库
- #笔记#圣思园 JavaWeb 第46讲——JavaScript脚本语言
- #笔记#圣思园 JavaWeb 第7讲——Servlet
- #笔记#圣思园 JavaWeb 第23讲——JavaBean
- #笔记#圣思园 JavaWeb 第29讲——Servlet
- #笔记#圣思园 JavaWeb 第39讲——Filter过滤器
- #笔记#圣思园 JavaWeb 第43讲——EL表达式
- #笔记#圣思园 JavaWeb 第65讲——jQuery,选择器
- #笔记#圣思园 JavaWeb 第78讲——JSON库,异步调用
- #笔记#圣思园 JavaWeb 第12讲——JSP基础知识、语法、内置对象、表单、客户机交互
- #笔记#圣思园 JavaWeb 第15讲——JSP内置对象
- #笔记#圣思园 JavaWeb 第32讲——Servlet多线程同步问题,Cookie
- #笔记#圣思园 JavaWeb 第34讲——Session深度解析
- #笔记#圣思园 JavaWeb 第42讲——Listener监听器,观察者模式
- #笔记#圣思园 JavaWeb 第49讲——定时器、两种事件绑定
- #笔记#圣思园 JavaWeb 第59讲——使用Firebug调试JS、JSUnit,XUnit
- #笔记#圣思园 JavaWeb 第63讲——Ajax,XMLHttpRequest对象
- #笔记#圣思园 JavaWeb 第2讲——CSS层叠样式表Cascading Style Sheets
- java play framework轻量级的后端,eclipse调试
- TCP客户/服务器端处理流程
- LeetCode 168 Excel Sheet Column Title
- 右值引用
- 构建分布式系统——技术考量
- #笔记#圣思园 JavaWeb 第44讲——自定义标签库
- Linux中awk---例子
- angular 路由
- python多线程并行实现随机森林
- WEB_基础_interceptor工作原理_待
- sql语句中count(*)与count(1)以及count(字段名)的异同点
- BZOJ 3168 Heoi2013 钙铁锌硒维生素 矩阵求逆+匈牙利算法
- viewpager切换动画问题
- 快速排序