当前位置:编程学习 > JS >>

Jsp自定义标

 

1、         编写一个实现tag接口的实现类

2、         在tld文件中对标签处理器类进行描述(放在WEB-INF目录下)

可以复制并修改E:\study\tomcat\apache-tomcat-7.0.22\apache-tomcat-7.0.22\webapps\examples\WEB-INF\jsp2中的xml代码

class3g.tld

 

<?xml version="1.0"encoding="UTF-8" ?>

 

<taglib xmlns="http://java.sun.com/xml/ns/j2ee"

   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"

   version="2.0">

  

   <description>There are my custom tags.</description>

   <tlib-version>1.0</tlib-version>

   <short-name>Class3g</short-name>

   <uri>http://www.class3g.com</uri>

  

  

    <tag>

  <description>showthe romete address</description>

       <name>viewIP</name>

  <tag-class>class3g.web.tag.ViewIpTag</tag-class>

  <body-content>empty</body-content>

    </tag> www.zzzyk.com

</taglib>

3、         在jsp中导入并使用自定义标签

<%@ taglib uri="http://www.class3g.com"prefix="class3g" %>

TagSupport类的生命周期

建立标签处理对象,然后将自定义标签的属性值存入标签处理对象,往里传值,调用doStartTag()方法,doStartTag()方法如果返回SKIP_BODY标签体将不被执行,直接进入doEndTag()方法,doEndTag()方法如果返回EVAL_PAGE则据需用心JSP网页的其他内容,如果返回SKIP_PAGE则忽略JSP网页的其他内容。doStartTag()方法如果返回EVAL_BODY_INCLUDE则标签体被执行,如果doAfterBoda()不被覆盖,相当于返回SKIP_BODY,标签体显示一次,接着运行doEndTag()方法;如果覆盖doAfterBoda()第一次显示完标签内容后返回EVAL_BODY_AGAIN,重新显示主体内容,一直到返回SKIP_BODYZ运行doEndTag()方法

 

作者 程龙

补充:Web开发 , Jsp ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,