java之动态标
在java开发过程中,自定义标签相当的富有乐趣,下面为大家带来一个简单的动态标签创建实例:
1、创建标签处理类:关键词(继承 SimpleTagSupport 和实现 DynamicAttributes 接口)
import java.io.IOException;
import javax.servlet.jsp.tagext.*;
import javax.servlet.jsp.*;
import java.io.*;
import java.util.*;
public class DynamicAttr extends SimpleTagSupport implements DynamicAttributes
{
//保存每个属性名的集合
private ArrayList<String> keys= new ArrayList<String>();
//保存每个属性名的值得集合
private ArrayList<Object> values=new ArrayList<Object>();
//重新doTag方法
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>");
}
out.println("</ol>");
}
@Override//实现接口方法
public void setDynamicAttribute(String uri, String localname, Object value)
throws JspException {
// TODO Auto-generated method stub
//添加属性名
keys.add(localname);
//添加属性值
values.add(value);
}
}
2、创建动态标签处理类以后,就需要修改标签配置文件.tld啦,如下
<?xml version="1.0" encoding="GBK" ?>
<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>A tag library exercising SimpleTag handlers.</description>
<tlib-version>1.0</tlib-version>
<short-name>mytaglib</short-name>
<uri>/mytaglib</uri>
<!-- 动态标签 -->
<tag>
<name>dynaAttr</name>
<tag-class>lee.DynamicAttr</tag-class>
<body-content>empty</body-content>
<dynamic-attributes>true</dynamic-attributes>
</tag>
</taglib>
3、实现使用动态标签 注:首先在jsp页面要先导入标签库(<%@ taglib uri="/mytaglib" prefix="mytag"%>):uri:是你上面标签配置项的链接,prefix:是你使用标签的前缀
<h2>下面显示的是自定义标签中的内容</h2>
<h4>指定两个属性</h4>
<mytag:dynaAttr name="feifan" url="happy"/><br/>
<h4>指定四个属性</h4><mytag:dynaAttr 账号="快乐人生" 密码="feifan118" 昵称="等着瞧" 座右铭="做了再说"/><br/>
4、完成以上3步,自定义动态标签就完成啦。大家试试看吧