Derek.
Guo
BLOG
BlogJava
首页
新随笔
联系
聚合
管理
随笔-86 评论-33 文章-0 trackbacks-0
自定义标签
=========自定义标签学习总结========= 2005年7月28日 09:54:07 Derek
标签的运行方式是:
JSP页面解析中发现自定义标签,则到上面的标签说明中寻找:如
<%
@ taglib uri
=
"
/mytitle.tld
"
prefix
=
"
dada
"
%>
此时它会找到该标签的uri ,uri 在web.xml中已经定义了
<
taglib
>
<
taglib
-
uri
>/
mytitle.tld
</
taglib
-
uri
>
<
taglib
-
location
>/
WEB
-
INF
/
mytitle.tld
</
taglib
-
location
>
</
taglib
>
此时它会通过uri在web.xml中查找到该标签的描述文件tld。那么在tld描述文件中又定义了该标签的处理类,具体完成业务的操作,标签处理类继承TagSupport,处理类完成操作后将返回页面。
<
name
>
title
</
name
>
<
tagclass
>
com.derek.tags.TitleTag
</
tagclass
>
准备工作 :首先在WEB-INF\lib下添加taglibs-log.jar包
1、创建标签描述文件
在WEB-INF下新建一个tld文件,该文件描述了此tld文件将由那个处理类完成操作,并且定义了该标签的属性。一个<taglib>中可以有很多个<tag>,由<name>标签名区分。
<?
xml version
=
"
1.0
"
encoding
=
"
UTF-8
"
?>
<!
DOCTYPE taglib PUBLIC
"
-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN
"
"
http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd
"
>
<
taglib
>
<
tlibversion
>
1.0
</
tlibversion
>
<
jspversion
>
1.1
</
jspversion
>
<
shortname
>
html
</
shortname
>
<
uri
>
http:
//
jakarta.apache.org/struts/tags-html</uri>
<
tag
>
<
name
>
title
</
name
>
<
tagclass
>
com.derek.tags.TitleTag
</
tagclass
>
<
bodycontent
>
empty
</
bodycontent
>
<
attribute
>
<
name
>
begin
</
name
>
<
required
>
true
</
required
>
</
attribute
>
<
attribute
>
<
name
>
end
</
name
>
<
required
>
true
</
required
>
</
attribute
>
</
tag
>
</
taglib
>
2、创建标签处理类
该类继承 TagSupport,覆盖doEndTag()方法
package com.derek.tags;
import javax.servlet.jsp.tagext.TagSupport;
import javax.servlet.jsp.JspException;
import java.util.Properties;
import java.io.
*
;
import javax.servlet.jsp.JspWriter;
public
class
TitleTag extends TagSupport {
private
String begin
=
null
;
private
String end
=
null
;
public
TitleTag() {}
public
String getBegin() {
return
begin;}
public
void
setBegin(String begin) {
this
.begin
=
begin;}
public
String getEnd(){
return
end;}
public
void
setEnd(String end){
this
.end
=
end;}
public
int
doEndTag() throws JspException {
Properties ps
=
(Properties)pageContext.getAttribute(
"
ps
"
,pageContext.APPLICATION_SCOPE);
//
从上下文中取的message.properties
JspWriter jw
=
pageContext.getOut();
if
(begin
!=
null
&&
begin.length()
>
0
){
String header
=
ps.getProperty(begin);
System.
out
.println(
"
页眉
"
+
begin);
try
{
jw.println(header);
}
catch
(IOException ex) {ex.printStackTrace();}
}
if
(end
!=
null
&&
end.length()
>
0
){
String footer
=
ps.getProperty(end);
System.
out
.println(
"
页脚
"
+
end);
try
{
jw.println(footer);
}
catch
(IOException ex1) {ex1.printStackTrace();}
}
return
SKIP_BODY;
}
public
void
release() {
super.release();
}
}
3、修改web.xml文件
在web.xml中<web-app>下添加,将标签的uri与具体标签描述文件绑定
<
taglib
>
<
taglib
-
uri
>/
mytitle.tld
</
taglib
-
uri
>
<
taglib
-
location
>/
WEB
-
INF
/
mytitle.tld
</
taglib
-
location
>
</
taglib
>
4、在页面中使用标签
首先在页面中导入标签
<%
@ taglib uri
=
"
/mytitle.tld
"
prefix
=
"
dada
"
%>
该句表示标签前缀为“dada”的标签将调用uri指定的标签,uri可以随便起名字,但一定要可web.xml中定义的uri相对应。
然后就可以在页面中使用了
<
dada:title begin
=
""
end
=
"
footer
"
/>
posted on 2005-09-11 09:56
Derek.Guo
阅读(541)
评论(0)
编辑
收藏
所属分类:
Java
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
J2SE6 分析工具
Hibernate属性延迟加载
JAVA缩放图片(转贴)
工具分析GC日志
java虚拟机参数详解
GC调优
Spring配置总结
JmakiDemo
Hibernate3支持DetachedCriteria(转贴)
JAVA访问LDAP
<
2005年9月
>
日
一
二
三
四
五
六
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
留言簿
(7)
给我留言
查看公开留言
查看私人留言
随笔分类
(83)
Cache(2)
Database(9)
Java(51)
Linux/Unix(17)
NoSqlDB(4)
文章分类
Mongodb
技术网站
54chen
Coreseek中文全文检索
Dominic-Blog
GFlot
GWT charting library http://repository.jboss.org/maven2/ca/nanometrics/gflot/1.0.0/
GWT Showcase
JavaCC、解析树和 XQuery 语法
Mongodb手册
MySQL 5.1参考手册
Mysql部落
Nginx 的中文维基
Redis
Sphinxsearch
spymemcached
A simple, asynchronous, single-threaded memcached client written in java.
Spymemcached
Tigase
轻量高性能JABBER/XMPP服务器,带GWT开发的客户端
Tomcat 系统架构与设计模式
xmemcached
Extreme performance modern memcached client for java
播布客
百度文库浏览器分析及实现
红联Linux
积分与排名
积分 - 187941
排名 - 307
最新随笔
1. 扩容kvm虚拟机镜像磁盘空间
2. 分布式文件系统Glusterfs
3. KVM虚拟机克隆网络问题
4. NFS 防火墙设置
5. 使用 sendfile() 提升网络文件发送性能
6. Web服务器性能/压力测试工具http_load、webbench、ab、Siege(转)
7. Magent:Memcached集群代理
8. Mongodb Import Export Tools
9. Mongodb dbshell Reference
10. 转mongodb入门
11. Mongodb Dynamic querys select
12. mysql常用的hint
13. Mysql innodb引擎优化
14. J2SE6 分析工具
15. liunx下安装Subversion
16. ORACLE 中dbms_stats的使用
17. Memcached 剖析(转)
18. Window下配置SVN服务器与客户端(转)
19. Oracle 10g Recycle Bin
20. Oracle中分区表的使用
最新评论
1. re: 转mongodb入门[未登录]
学习了。、多谢分享
--Z
2. re: Java调用Linux命令
这个很不错,谢谢了!我正需要这个功能!
--网络记事本
3. re: Hibernate 本地SQL查询SQLQuery
不错,很受用
--happytjn
4. re: DES加密
评论内容较长,点击标题查看
--woxiangbo
5. re: JAVA缩放图片(转贴)
希望能用
--moguji
阅读排行榜
1. ORACLE 中dbms_stats的使用(18852)
2. Hibernate 本地SQL查询SQLQuery(16583)
3. Hibernate批量更新和批量删除(11592)
4. JProfiler远程监控Tomcat(9933)
5. Java调用Linux命令(7445)
6. Spring+Hibernate+Struts(6609)
7. Spring DataSource注入(5709)
8. Spring+hibernate分页查询(4584)
9. Spring Hibernate 模板实现分页(4575)
10. java虚拟机参数详解(4374)
11. Hibernate one-to-many学习笔记(4323)
12. Apache + Tomcat*2集群 负载平衡(Linux环境)(4107)
13. 工具分析GC日志(2978)
14. WEB定时器-Timer(2919)
15. Solaris系统进程的查看和管理(2624)
16. Hibernate-Extension和Middlegen-Hibernate(2558)
17. Spring配置总结(2344)
18. JAVA缩放图片(转贴)(2307)
19. Struts中logic:iterate标记的使用(2299)
20. JAVA访问LDAP(2287)
21. Tomcat 通过数据库验证的配置方法(BASIC,FORM).(2209)
22. Tomcat内存配置(2188)
23. Tomcat5.0连接池(2052)
24. JAVA的RSS阅读器(2006)
25. 数据库性能 常用SQL(1917)
26. Oracle中分区表的使用(1832)
27. Hibernate属性延迟加载(1829)
28. Hibernate主键生成方式(1829)
29. GC调优(1789)
30. hibernate二级缓存攻略 Ehcache(转贴)(1775)
31. EL表达式(1747)
32. RedHat终端中文乱码解决(1708)
33. ORACLE CTXCAT-CATSEARCH(1701)
34. NFS 防火墙设置(1699)
35. Magent:Memcached集群代理(1614)
36. 转mongodb入门(1553)
37. Hibernate3.0批量更新和批量删除(1510)
38. 分布式文件系统Glusterfs(1497)
39. Spring 定时器(1479)
40. Struts常用标签(1468)
MSN:envoydada@hotmail.com QQ:34935442