6.帶屬性的標籤

       1. 自定義標籤可以定義一個或多個屬性,這樣,在JSP頁面中應用自定義標籤時就可以設置這些屬性的值,通過這些屬性爲標籤處理器傳遞參數信息,從而提高標籤的靈活性和複用性。
2.要想讓一個自定義標籤具有屬性,通常需要完成兩個任務:
(1)在標籤處理器中編寫每個屬性對應的setter方法
(2)在TLD文件中描術標籤的屬性

       2.爲自定義標籤定義屬性時,每個屬性都必須按照JavaBean的屬性命名方式,在標籤處理器中定義屬性名對應的setter方法,用來接收JSP頁面調用自定義標籤時傳遞進來的屬性值。 例如屬性url,在標籤處理器類中就要定義相應的setUrl(String url)方法。

      3.在標籤處理器中定義相應的set方法後,JSP引擎在解析執行開始標籤前,也就是調用doStartTag方法前,會調用set屬性方法,爲標籤設置屬性。
 
4.例子
(1)在標籤處理器類中編寫每個屬性對應的setter方法

public class SimpleTagDemo5 extends SimpleTagSupport {

 private int count;
 private Date date;
 
 public void setCount(int count) {
  this.count = count;
 }
 

 public void setDate(Date date) {
  this.date = date;
 }

 @Override
 public void doTag() throws JspException, IOException {
  JspFragment jf = this.getJspBody();
  for(int i=0;i<count;i++){
   jf.invoke(null);
  }
 }
}

 
(2)編寫tld文件
<tag>
        <name>simpledemo5</name>
  <tag-class>cn.itcast.web.simpletag.SimpleTagDemo5</tag-class>
  <body-content>scriptless</body-content>
  <attribute>
   <description>指定標籤把標籤體執行幾次</description>
   <name>count</name>
   <required>true</required>
   <rtexprvalue>true</rtexprvalue>
  </attribute>
  
  <attribute>
   <name>date</name>
   <required>true</required>
   <rtexprvalue>true</rtexprvalue>這個值爲true說明在給屬性賦值的時候,可以接受el表達式或者腳本表達式;如果是false,則只能給一個固定的值
  </attribute>
    </tag>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章