public class DynamicTag 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();
for(int i=0;i<keys.size();i++){
String key=keys.get(i);
Object value=values.get(i);
}
}
@Override
public void setDynamicAttribute(String uri,String localName,Object value) throws JspException{
keys.add(localName);
values.add(value);
}
}
以上的标签类,实现了动态属性接口,就是动态属性标签处理类必须实现的接口,实现该接口必须实现setDynaAttributes方法.
以下是标签片断:
<tag>
<name>dynaAttr</name>
<tag-class>标签处理类</tag-class>
<body-content>empty</body-content>
<!-- 设定支持动态属性-->
<dynamic-attributes>true</dynamic-attributes>
</tag>
调用方法:
<%@ taglib uri="mytaglib" prefix="dynatag"%>
<mytag:dynaAttr name="abc" age="20" />
<mytag:dynaAttr id="1" address="中国北京" code="100000" tel="+8613000000000" />