三步:
一、自定义标签实现类: myTags.java;
二、自定义标签库文件(TLD): myTags.tld;
三、一个JSP页面:随便写了;
首先myTags.java
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
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;
}
}
然后myTags.tld文件,在web-inf文件夹下生成,也可看做一个XML文件
<!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>
最后,来一个页面吧
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'MyJsp.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css" mce_href="styles.css">
-->
</head>
<body>
showTable : <s:showTable name="sss"></s:showTable>
</body>
</html>
注意:
一、页面中的代码, "mytags"对应的是tld文件中的<uri>节点;
二、showTable是标签名,对应tld文件<name>节点,"name"可为输入参数
over!!!!