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步,自定義動態標籤就完成啦。大家試試看吧