您的位置:首页 > 其它

标签的动态属性练习---DynamicAttributes

2014-09-25 00:00 218 查看
WEB-INF\src\DynamicAttributeTag.java

package sadhu;
import javax.servlet.jsp.tagext.*;
import java.util.*;
import java.io.*;
import javax.servlet.jsp.*;

/**
*动态属性标签处理类
实现:DynamicAttributes接口
*/
public class DynamicAttributeTag extends SimpleTagSupport implements DynamicAttributes
{
private ArrayList<String> keys = new ArrayList<String>();
private ArrayList<Object> values = new ArrayList<Object>();
//重写标签输出方法
@Override
public void doTag() throws JspException,IOException
{
JspWriter out = getJspContext().getOut();
out.println("<ol>");
for(int i = 0; i < keys.size(); i++)
{
String key = keys.get(i);
Object value = values.get(i);
out.println("<li>" + key + "=" + value + "</li>");
}
}
//设置动态属性
@Override
public void setDynamicAttribute(String url,String localName,Object value)throws JspException
{
keys.add(localName);
values.add(value);
}
}

javac命令编译到WEB-INF\classes目录中

WEB-INF\tld\jsp2-taglib.tld

<?xml version="1.0" encoding="UTF8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0">
<!-- 标签描述 -->
<description>自定义标签库</description>
<!-- 标签版本 -->
<tlib-version>1.0</tlib-version>
<!-- 标签短名字 -->
<short-name>myTaglib</short-name>
<!-- 标签库的唯一标识 -->
<uri>http://www.sadhu.com/jsp2-taglib</uri>
<tag>
<!-- 标签名字 -->
<name>myTag</name>
<!-- 处理类 -->
<tag-class>sadhu.DynamicAttributeTag</tag-class>
<!-- 标签的内容体 -->
<body-content>empty</body-content>
<!-- 指定支持动态属性 -->
<dynamic-attributes>true</dynamic-attributes>
</tag>
</taglib>

配置好后重启tomcat

index.jsp

<%@ page contentType="text/html;charset=GBK" language="java" %>
<%@ taglib uri="http://www.sadhu.com/jsp2-taglib" prefix="mytag" %>

<html>
<head>
<title>动态属性标签的练习</title>
</head>
<body>
<mytag:myTag name="sadhu" url="sadhu.com" />
</body>
</html>

输出:

name=sadhu

url=sadhu.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: