使用自定义标签简单案例

来源:互联网 发布:淘宝宝贝的无线端链接 编辑:程序博客网 时间:2024/05/29 10:11

说明:使用自定义标签 需要至少需要一个自定义的.tld文件(生成后必须放在WEB-INF目录下面),还有一个继承了TagSupport类的自定义标签类(也是普通的java类),本案例中我们自定义标签主要实现计算时间功能

操作步骤:

1:在项目中新建WebProject/src/org/wjlmgqs/timerTag/TimerTag.java

2:在上面的类中实现两个方法:

package org.wjlmgqs.timerTag;
import java.io.IOException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
public class TimerTag extends TagSupport {
 private long start;
 private long end ;
 public int doStartTag() {
  start = System.currentTimeMillis();
  return EVAL_BODY_INCLUDE;
 }
 public int doEndTag() {
  end =  System.currentTimeMillis();
  long elapsed = end - start;
  JspWriter out = pageContext.getOut();
  try {
   out.println("共用时间:"+elapsed);
  } catch (IOException e) {
   e.printStackTrace();
  }

//下面的EVAL_BODY_INCLUDE表示继续执行jsp页面上的内容

  return EVAL_BODY_INCLUDE;
 }
}

3:配置tld文件(可以在tomcat的example的项目中找到范例,如:F:\tomcat6.0\webapps\examples\WEB-INF\jsp2\jsp2-example-taglib.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>my Timer tag</description>
<!--    对自定义标签的版本描述-->
    <tlib-version>1.0</tlib-version>
<!--  1  对自定义标签推荐使用的头部-->
    <short-name>util</short-name>
<!--  2  使用自定义标签时的连接-->
    <uri>http://org.wjlmgqs.com</uri>
    <tag>
<!--    标签功能的描述-->
  <description>output the code run times</description>
<!--  3  引用的标签名称-->
     <name>timer</name>
<!--  4 引用的标签类-->
  <tag-class>org.wjlmgqs.timerTag.TimerTag</tag-class>
<!-- 对标签的范围限制,如下:标签中可以出现jsp代码-->
  <body-content>JSP</body-content>
    </tag>
</taglib>

4:index.jsp中引用:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="util" uri="http://org.wjlmgqs.com" %>
<html>
  <body>
   <util:timer>
  <%for(int i=0;i<1000000;i++){
  } %>
 </util:timer>
  </body>
</html>   
  </body>

原创粉丝点击