JSP-自定义标签(一) 使用自定义标签的好处

1:加快Web应用开发的进度

2:提高代码的重用性

3:使得JSP程序更加容易维护

使用自定义标签与JavaBean的区别是

1:javaBean不能操作JSP形式的内容,而自定义标签可以处理JSP形式的标签体

2:自定义标签比JavaBean更能将复杂懂得操作缩减为十分简洁的形式

3:建立自定义标签比JavaBean困难

标签处理的程序过程

1:当容器创建一个新的标签实例后,通过setPageContext来设置标签的页面上下文。

2:使用setParent方法来设置这个标签的上一级标签,如果没有上一级嵌套,册设置为null。

3:设置标签属性,这个属性在标签库描述文件中定义,如果没有定义属性,就不调用该类方法。

4:调用doStartTag方法,这个方法可以返回EVAL_BODY_INCLUDE或SKIP_BODY,当返回EVAL_BODY_INCLUDE时,就计算标签体,如果返回SKIP_BODY就不计算标签体。

5:调用doEndTag方法,这个方法可以返回EVAL_PAGE或SKIP_PAGE,当返回EVAL_PAGE时容器将在标签结束时继续计算JSP的其他部分,如果返回SKIP_PAGE时,容器将在标签结束时停止计算JSP页面的其他部分。

6:调用release()方法释放标签程序占用的资源。

下面我们来通过范例来看一下如何创建一个自定义标签 displayDate.java代码如下

package tag.test.date; import java.io.*; import java.util.Date; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; public class displayDate extends TagSupport{ public int doStartTag()throws JspException{ JspWriter out=pageContext.getOut(); try { out.print(new Date()); } catch(Exception e) { e.printStackTrace(); } return (SKIP_BODY); } }

编译好此文件后把所产生的类拷贝到C:\tomcat\webapps\ROOT\WEB-INF\classes\tag\test\date目录下, 然后编写.tld文件代码,代码如下

<?xml version="1.0" encoding="ISO-8859-1"?> 1.21.2date this taglib provides tag to show date displaydatetag.test.date.displayDateempty

注意此文件存放的路径为C:\tomcat\webapps\ROOT\WEB-INF 在然后修改web.xml文件,也就是向web.xml中添加下面内容 date/WEB-INF/date.tld 最后就是编写header.jsp文件了,代码如下

<%@ taglib uri="date" prefix="mydate" %> today is

注意:JSP代码中的<%@ taglib uri="date" prefix="mydate" %>uri值必须和web.xml中的date值一致。 做好上面的工作后,启动tomcat,在地址拦中输入http://localhost:8080/header.jsp 后就会看到下面的结果 today isSun May 13 08:41:36 CST 2007 好通过上面的讲解你一定对JSP的自定义标签有了一定的了解,现在就自己动手来实验一下把。