当前位置: 首页 > 图文教程 > 网络编程 > JSP > JSP 自定义标签之一 简单实例

JSP
Servlet及JSP中的多线程同步问题
使用Ant和Tomcat创建Web应用
如何直接在浏览器内运行SQL命令
Servlet、Jsp中的多国语言显示
html与jsp开发分离技术
通过Jsp发送动态图像
Servlets和JSP Pages最佳实践
学习在JSP中使用JavaBeans
JSP显示内容缓存技巧
应用JDOM处理数据库到XML转换的JSP实现
JSP中tomcat的SQL Server2000数据库连接池的配置
用JSTL实现JSP应用程序快速开发
浅谈4种类型的JDBC驱动程序
怎样设置 JSP 的虚拟目录
Java 中对文件的读写操作之比较
javamail在jsp中调用
jsp中任意文字转Unicode的通用模块
JSP与SQL SERVER的留言本
jspSmartUpload上传下载全攻略
Tomcat5.x中的虚拟主机配置方法

JSP 自定义标签之一 简单实例


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 192 ::
收藏到网摘: n/a

当前软件开发越来越重视分工与协作,对于JSP技术而言,视图层与模型层分别由不同的团队完成也成为理所当然的选择,基于技术专长不同及其它因素考虑,众多规范中都明确要求JSP页面代码中不允许出现Java代码。 在JSP中使用自定义标签可以达到这样的目的,事实上,我们所熟知的各类框架基本上都是通过自定义标签的形式来实现的。
通过使用自定义标签,我们可以将实现复杂的逻辑在页面用简单的标签来加以展示。下面我们来实现一个非常简单的自定义标签,期望通过这个简单的实例引领各位进入自定义标签的领域。我们准备定义的这个自定义标签所实现的功能是在JSP页面中显示出版权信息,并且在以后的博文中,我们还会对它进行升级改造。
首先,打开编辑器,创建以下Java代码:
复制代码 代码如下:

package com.yanzhijun;
import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class CopyRightTag extends TagSupport
{
public int doEndTag()
{
try
{
String copyPre = "颜志军版权所有 ©2008";
String info = new String(copyPre.getBytes(), "ISO8859_1");
pageContext.getOut().println(info);
}
catch(IOException e){}
return EVAL_PAGE;
}
}

上述代码编辑完成后,编译并生成class文件。并将编译之后的字节码文件连同包名一同放入准备使用当前标签的WEB应用的WEB-INF\classes目录之下。例如WEB应用在名为test的目录之下,则将上述代码编译时生成的com目录全部拷贝至test\WEB-INF\classes之下即可。
注意:在编译上述代码时,如果不是在集成的环境中进行,例如直接在命令行通过执行javac命令进行编译工作,那么需要手工在环境变量CLASSPATH中添加包javax.servlet.jsp所在的位置,对于Tomcat而言,这个包的位置是Tomcat安装目录下lib目录中的jsp-api.jar。
随后将以下XML格式的文件存入到名为testlib.tld的文件中,文件testlib.tld要存储于目录WEB-INF\tlds之下。
复制代码 代码如下:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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>yzj</shortname>
<tag>
<name>copyright</name>
<tagclass>com.yanzhijun.CopyRightTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute/>
</tag>
</taglib>

至此,我们已经完成了一个自定义标签,随后我们就可以在JSP文件中对其进行使用了。例如有如下JSP文件:
复制代码 代码如下:

<%@ taglib uri="WEB-INF/tlds/testlib.tld" prefix="yzj" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>自定义标签简单示例</title>
</head>
<body>
<p>这里是正文内容</p>
<yzj:copyright/>
</body>
</html>

在浏览器中访问该JSP文件,可以看到,在页面底部,显示了“颜志军版权所有 ©2008”的信息,这正是我们定义的这个自己定义标签的作用。
通过上面的过程,已经实现了自定义标签,并对其进行使用测试。关于其原理、机制、要注意的细节等问题,在请等待随后的博文。