程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 自定義標簽-2

自定義標簽-2

編輯:關於JSP

 

1、簡單標簽的使用

1)  使用自定義標簽控制頁面內容(標簽體)是否輸出

 

public void doTag() throws JspException, IOException { 

 

//JspFragment jf = this.getJspBody(); 

 

//jf.invoke(null); 

 

//等價於jf.invoke(this.getJspContext().getOut()); 

 

 

 

 

2)  簡單標簽控制標簽後的jsp內容是否執行

public void doTag() throws JspException, IOException {

   JspFragment jf = this.getJspBody();

   jf.invoke(null);

 

   throw new SkipPageException();

}

 

3)        自定義標簽實現內容(標簽體)循環輸出

public void doTag() throws JspException, IOException {

   JspFragment jf = this.getJspBody();

 

   for(int i=0; i<5; i++){

      jf.invoke(null);

   }

}

 

4)        自定義標簽修改內容(標簽體)——大小寫轉換

public void doTag() throws JspException, IOException {

   JspFragment jf = this.getJspBody();

 

//為了獲取JspFragment中的內容,將其輸入一個帶緩沖的Writer中,//在獲取字符串

   StringWriter sw = new StringWriter();

   jf.invoke(sw);

 

   String content = sw.toString().toUpperCase();

 

   JspWriter out = this.getJspContext().getOut();

   out.write(content);

   }

 

 

2、帶屬性的自定義標簽

1)控制標簽體循環輸出指定次數

在標簽處理類中添加屬性變量及其setter方法

private int times;

public void doTag() throws JspException, IOException {

   JspFragment jf = this.getJspBody();

 

   for(int i=0; i<times; i++){

      jf.invoke(null);

   }

}

public void setTimes(int times) {

   this.times = times;

}

在tld文件中增加屬性描述<attribute></attribute>

<attribute>

   <name>times</name>

   <required>true</required>

   <rtexprvalue>true</rtexprvalue>

</attribute>

 

演示<trexprvalue>true</rtexprvalue>

<class3g:mySimpleTag5 times="<%=3+1 %>">

   aaaaaaaaa<br>

</class3g:mySimpleTag5>

 

2)解釋傳參時類型轉換問題,並以Data數據的傳遞演示非基本數據類型的參數傳遞

l  在標簽處理類中添加Data類型成員及其setter方法

private Date date;

public void setDate(Date date) {

   this.date = date;

}

l  在tld中添加屬性描述

<attribute>

   <name>date</name>

   <required>true</required>

   <rtexprvalue>true</rtexprvalue>

<type>java.util.Date</type>

</attribute>

l  在jsp中調用

<class3g:mySimpleTag5 times="3" date="<%=new Date() %>">

xxxxxxxx

</class3g:mySimpleTag5>

 

摘自 耗子的程序員之路

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved