tagsupport
参考:http://book.51cto.com/art/201004/193462.htm
1. 创建自定义标签的处理类ToUpperCase.java,需要继承BodyTagSupport类。
package com.zhuomuniao.myproject.commons.taglib;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.Bodycontent;
import javax.servlet.jsp.tagext.BodyTagSupport;
@SuppressWarnings("serial")
public class ToUpperCase extends BodyTagSupport {
private String var = null; //定义一个存放结果的变量
public String getVar() {
return var;
}
public void setVar(String var) {
this.var = var;
}
//标签开始时调用的处理方法
public int doStartTag() throws JspException {
//表示需要处理标签体
return EVAL_BODY_BUFFERED;
}
//判断了标签体内容之后调用的处理方法
public int doAfterBody() throws JspException {
//取得标签体对象
BodyContent body = getbodyContent();
//取得标签体的字符串内容
String content = body.getString();
//清除标签体中的内容
body.clearBody();
//将内容转换成大写
content = content.toUpperCase();
//在pagecontext对象中保存变量
pageContext.setAttribute(var, content);
//结束对标签体的处理
return SKIP_BODY;
}
}
2. 创建标签库描述文件zhuomuniao.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的版本号 -->
<jsp-version>1.2</jsp-version>
<!-- 标签库的默认前缀 -->
<short-name>zhuomuniao</short-name>
<!-- 标签库的唯一访问标识符 -->
<uri>/zhuomuniao</uri>
<!-- 定义一个标签 -->
<tag>
<!-- 标签的名字 -->
<name>ToUpperCase</name>
<!-- 标签的处理类 -->
<tag-class>com.zhuomuniao.myproject.commons.taglib.ToUpperCase</tag-class>
<!--标签体的内容:empty表示没有标签体,JSP表示标签体可以加入JSP程序代码,tagdependent表示标签体中的内容由标签自己处理 -->
<body-content>tagdependent</body-content>
<!-- 定义标签变量 -->
<variable>
<!-- 变量名称 -->
<name-from-attribute>var</name-from-attribute>
<!-- 变量类型 -->
<variable-class>java.lang.String</variable-class>
<!-- 变量作用范围:NESTED开始和结束标签之间,AT_BEGIN从开始标签到页面结束,AT_END在结束标签之后直到页面结束 -->
<scope>AT_BEGIN</scope>
</variable>
<!-- 定义标签的属性 -->
<attribute>
<!-- 属性名称 -->
<name>var</name>
<!-- 属性是否必需 -->
<required>true</required>
</attribute>
</tag>
</taglib>
3. 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>zhuomuniao</taglib-uri>
<taglib-location>/WEB-INF/tld/zhuomuniao.tld</taglib-location>
</taglib>
</jsp-config>
</web-app>
4. 创建一个使用自定义标签的JSP测试页面test.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="zhuomuniao" prefix="zhuomuniao" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My Tag</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
<zhuomuniao:ToUpperCase var="result">asdfghjkl</zhuomuniao:ToUpperCase>
转换结果:<%=result%>
</body>
</html>
测试结果截图
代码下载地址: http://download.csdn.net/detail/chuzhenbin/4159281
=================以上===================