简单的自定义标签

   index.jsp

<%@ page language="java" contentType="text/html;charset=gb2312"%>

 //uri属性定义了唯一的标签库描述(以下简称TLD),它可以是直接是tld文件名或一个独一无二的名字。prefix是用来区别其它TLD中和本TLD中有重名的tag的一种手段。相当起了一个别名。
<%@ taglib uri="http://xie.tld" prefix="mes" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
 </head>
        
  <body>
 <h1><mes:example/></h1>

  </body>
</html>

 

 

 Mes.java

package mesTag;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.io.*;
public class Mes extends TagSupport {
 public int doStartTag(){
  try{

    //目的是处理后在页面显示“自定义标签”
   JspWriter out=pageContext.getOut();
   out.println("自定义标签");
   
  }
  catch(IOException e){
   System.out.println("e");
  }

  //SKIP_PAGE指明servlet应忽视后面标签体。
  return (SKIP_BODY);
 }

}

 

xie.tld

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
                        "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
 <tlib-version>1.0</tlib-version>
 <jsp-version>1.2</jsp-version>
 <short-name>ex-out</short-name>
 <tag>
  <name>example</name>                当页面有example这个元素时tld文件会找到mesTag包下的Mes类进行处理
  <tag-class>mesTag.Mes</tag-class>
 </tag>
</taglib>

 

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
 <jsp-config>
  <taglib>
   <taglib-uri>http://xie.tld</taglib-uri>   配置http://xie.tld到>/WEB-INF/xie.tld的映射,在index.jsp 页面引入
   <taglib-location>/WEB-INF/xie.tld</taglib-location>
  </taglib>
 </jsp-config>
 <login-config>
  <auth-method>BASIC</auth-method>
 </login-config>
</web-app>

 

类为标识句柄类:用来定义在解析此标识时,所执行的服务器端的工作。
tld文件为标识描述文件:用来描述标识实现所需要的一些属性。
web文件用来关联tld文件uri形式和tld存放的位置、
jsp文件来引用标识。

 

 

实现一个标记处理程序类。对这个类进行编译,然后把生成的类文件放到应用程序的WEB-INF/classes目录下。

创建TLD文件把这个文件取名为*.tld,并把它放在应用程序的WEB-INF/tlds目录下

配置web

jsp应用它

 

 

运行原理说明:当index这个页面被请求时,JSP容器就使用这个TLD来发现与自定义行为相对应的类然后它将调用所有相应的方法。

上面代码是在 eclipse+tomcat 下编写的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值