所需:
一、自定义标签实现类: myTags.java
二、自定义标签库文件(TLD): myTags.tld
三、一个JSP页面:index.jsp
四、web.xml里配置加载tld
java类:
public class myTags extends TagSupport {
public String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int doEndTag() throws JspException {
JspWriter out = pageContext.getOut();//得到out
try{
out.println("<table bgColor=yellow>");
out.println("<tr>");
out.println("<td>"+ name +" : this is myTags!!!</td>");
out.println("</tr>");
out.println("</table>");
}catch(Exception ex){ex.printStackTrace();}
return this.EVAL_PAGE;
}
}
tld文件:<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib> <!-- 标签库定义文件根节点:taglib -->
<tlibversion>1.2</tlibversion> <!-- 标签库版本 -->
<jspversion>1.1</jspversion> <!-- Jsp版本 -->
<shortname>mytags</shortname> <!-- 标签库名称 -->
<uri>mytags</uri> <!-- uri:很重要!外界导入标签库时认识的名称 -->
<!-- 定义标签 -->
<tag>
<name>showTable</name> <!-- 标签名称 -->
<tagclass>com.tags.myTags</tagclass> <!-- 对应的类 -->
<attribute>
<name>name</name>
<required>true</required> <!-- 是否必需 -->
<rtexprvalue>true</rtexprvalue> <!-- 能否接受表达式 -->
</attribute>
</tag>
</taglib>
jsp文件:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib uri="mytags" prefix="s"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
showTable : <s:showTable name="sss"></s:showTable>
</body>
</html>
web.xml:
<!-- 标签库 -->
<jsp-config>
<taglib>
<taglib-uri>/zmkm/jsp/tag</taglib-uri>
<taglib-location>/WEB-INF/tld/m.tld</taglib-location>
</taglib>
</jsp-config>