日期:2014-05-16 浏览次数:20481 次
做一个最简单的jsp的自定义标签库,主要是入门加熟悉。
1、写个jsp页面,在页面里面使用自定义库。customTag.jsp
?
<%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib prefix="pr" uri="/customUri"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>customTag.jsp</title> </head> <body> <br> <!-- 下面为自定义标签mytag --> <pr:mytag myattr="testString"></pr:mytag> </body> </html>
?
2、在web.xml中要配置自定义库uri为"/customUri"的引用,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">
<!-- 标签库的引用定义 -->
<taglib>
<taglib-uri>/customUri</taglib-uri>
<taglib-location>/WEB-INF/customTags.tld</taglib-location>
</taglib>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
?
3、创建web.xml里面引用的WEB-INF文件夹下面的customTags.tld文件,也就是自定义标签库文件,xml格式的:
?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>sh</short-name>
<tag>
<!-- 页面中使用的标签名mytag -->
<name>mytag</name>
<!-- 这个标签所对应的标签类,继承自javax.servlet.jsp.tagext.TagSupport -->
<tag-class>com.xxx.platform.tag.MyTags</tag-class>
<!-- mytag标签中的myattr属性定义 -->
<attribute id="my">
<name>myattr</name>
<!-- 该属性在mytag标签中非必须 -->
<required>false</required>
<type>String</type>
</attribute>
</tag>
</taglib>
?
4、创建标签所引用的标签类,继承自javax.servlet.jsp.tagext.TagSupport类,com.xxx.platform.tag.MyTags.java:
?
package com.xxx.platform.tag;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
public class MyTags extends TagSupport {
// 对应到mytag标签中的属性myattr,必须要有set和get方法
private String myattr;
public String getMyattr() {
return myattr;
}
public void setMyattr(String var) {
this.myattr = var;
}
public MyTags() {
}
@Override
public int doAfterBody() throws JspException {
return super.doAfterBody();
}
@Override
public int doEndTag() throws JspException {
return super.doEndTag();
}
@Override
public int doStartTag() throws JspException {
// 在mytag标签开始的时候做简单处理打印一句话。
JspWriter out = pageContext.getOut();
try {
out.print("it is my custom tags and the myattr is "+myattr+".");
} catch (IOException e) {
e.printStackTrace();
}
return super.doStartTag();
}
}
?5、将工程部署到tomcat中,运行,OK。
?
附件:目录结构和运行结果。