Posted on 2006-03-20 10:30
砖头 阅读(184)
评论(0) 编辑 收藏 所属分类:
JSTL
下面是使用了简单Tag的JSP文件,运行结果是显示当前时间:
<%@ page contentType="text/html;charset=gb2312" %>
<html><body>
<%@taglib uri="/tags" prefix="visa"%>
现在时间是:<visa:date/>
</body></html>
很明显,使用了tag的JSP页清爽了许多---如果将数据库操作等一些复杂功能也封装进去的话,tag的优势就更明显了!
**环境:win2000 server + Tomcat5.019 + j2sdk1.42 + SQLServer 2k
**开发一个Tag,需要编写2个主要文件:
1-标签处理器(一个类servlet的java类)
2-标签描述符(一个XML风格的tld文件)
完成这两个文件,就可以在WEB应用中部署、应用了。
好了,下面我们就开始做吧!
1-编写tag处理器:datetag.java
它的作用就象一个Servlet,接受来自客户端的请求,但它却可以象javaBean一样在JSP中方便调用。
package tag;
import java.util.Date;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class datetag extends TagSupport{
public int doStartTag() throws JspException{
Date dte=new Date();
try{
JspWriter out=pageContext.getOut();
out.print(dte);
}
catch(java.io.IOException e)
{throw new JspTagException(e.getMessage());}
return SKIP_BODY;
}
}
用 javac编译之后,就得到了 datetag.class文件了,将其放在 xxx\WEB-INF\classes\tag 目录下。
2-编写tag库描述符:tags.tld
比较容易看出,<tag></tag>部分有点象servlet mapping的配置--这里配置的是tag的名字与tag类之间的映射。
<?xml version="1.0" encoding="ISO-8859-1"?>
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<tag>
<name>date</name>
<tag-class>tag.datetag</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>
将tags.tld保存在xxx\WEB-INF\ 目录下。
3-配置你的web.xml:
配置web.xml,注册你的标签库:在web.xml的 <web-app>与</web-app>之间添加:
在这里注册你的自定义标签符,在JSP中的引用名为:/tags
<taglib>
<taglib-uri>/tags</taglib-uri>
<taglib-location>/WEB-INF/tags.tld</taglib-location>
</taglib>
4-开始在JSP中使用!
因为已经在web.xml中注册过,通过 /tags 引用你的标签库;
prefix的作用就象<jsp:useBean/>中的 id,只是作为一个标志(可任意定义)
<visa:date/> 很明显,通过调用date,就等于调用了 datetag.class :
<%@ page contentType="text/html;charset=gb2312" %>
<html><body>
<%@taglib uri="/tags" prefix="visa"%>
现在时间是:<visa:date/>
</body></html>