java之動態標籤



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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章