自定义动态属性标签

来源:互联网 发布:折八百淘宝商城下载 编辑:程序博客网 时间:2024/05/13 06:36

标签处理类,继承SimpleTagSupport 并重写doTag方法,实现DynamicAttributes接口和其方法setDynamicAtrributes

package com.chinaebi.test;import java.io.IOException;import java.util.ArrayList;import java.util.List;import javax.servlet.jsp.JspException;import javax.servlet.jsp.JspWriter;import javax.servlet.jsp.tagext.DynamicAttributes;import javax.servlet.jsp.tagext.SimpleTagSupport;/** * 动态属性的标签 * @author Administrator * */public class DynaAttributesTag extends SimpleTagSupport implements DynamicAttributes{    //保存每个属性的集合    private List<String> keys = new ArrayList<String>();    //保存每个属性值的集合    private List<Object> values = new ArrayList<Object>();    @Override    public void setDynamicAttribute(String uri, String localname, Object value)            throws JspException {        keys.add(localname);        values.add(value);    }    @Override    public void doTag() throws JspException, IOException {        JspWriter out = getJspContext().getOut();        out.println("<ol>");        for(int i=0;i<keys.size();i++){            out.print("<li>"+keys.get(i)+"="+values.get(i)+"</li>");        }        out.print("</ol>");    }}

配置该标签,标记部分是实现动态标签必须的

<tag>        <name>dynaAttr</name>        <tag-class>com.chinaebi.test.DynaAttributesTag</tag-class>        <body-content>empty</body-content>        <!-- 是否支持动态属性 -->        **<dynamic-attributes>true</dynamic-attributes>**    </tag>

页面的引用,页面开头要加入标签的引用<%@taglib uri="http://www.chinaebi.org/myTaglib" prefix="myTag" %>

标签属性可以任意

<myTag:dynaAttr name="book" url="http://www.baidu.com" 价格="20"/>

效果
这里写图片描述

0 0
原创粉丝点击