自定義標籤的寫法

例如我們在一個html文檔中寫一個自定義的標籤

<%@taglib uri="" prefix="c1"%>    //uri是一個命名空間,perfix是一個前綴


在html的正文中我們寫上 <c1: msg="" qty="">     //c1就是這個標籤的標籤名,msg和qty是屬性


我們要定義這個標籤就要先些上這個標籤的類,這個類要繼承SimpleTagSupport

public class HelloTag extends SimpleTagSupport{
    //寫上屬性,要與標籤中的屬性一一對應,而且一定要寫上set方法
    private String msg;
    private int qty;
    public void setMsg(Strig msg){
        this msg=msg;
    }
    public void setQty(int qty){
        this qty=qty;
    }
    //按住右鍵找到source 找到override 找到dotag方法,將其覆蓋
    public void doTag() throws JspException, IOException {
       PageContext page=(PageContext)getJspContext();//得pageContext得天下
	JspWriter out=page.getOut();//從而獲得輸出流
	//下面是具體業務邏輯
	for(int i=0;i<100;i++){
		out.println("hello world");
	}
		
	}
    }
}

最後寫個描述文件(相當與在自定義的標籤與類定義之間的一個橋樑的作用)

在WEB-INF下建一個mytag.tld的描述性文件(可以參照c.tld)

<?xml?>描述文件

<taglib ssssss>

<tlib-version>1.1

<short-name>c1     //這就是個前綴

<uri>test          //命名空間

<tag>

<name>hello</name>

<tag-class>tag.HelloTag</tag-class>

<bady-content>empty</bady-content>

//有三個值empty 沒有標籤體;scriptless 可以有標籤體,但是標籤體的內容不能有java代碼(《% %》 //《%= %》《%! %》);jsp 有標籤體,可以寫java代碼,但是隻有複雜有,我們學的簡單沒有這個了

<attribute>

<name>

<required>true</required>//表示必須要賦值

<rtexprvalue>true    //表示可以動態賦值,可以用el表達式來賦值  

</attribute>

</tag>

</taglib>



自定義標籤的總結:

1,要寫上一個自定義標籤的類

2,要寫一個在WEB-INF下寫一個對這個標籤的描述性文件

3,就可以在html中使用了

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