From: Polin Wei
所有的標籤 Tag 處理類別均是執行 Tag, IterationTag 或 BodyTag 介面之一的 Java 類別 (class) . 因為 Java 並不支援多重繼承, 因此, 如果現有的類別 (class) 已繼承自某個基礎類別, 就無法使其繼承自必要的標籤 Tag 處理基礎類別了(好像有點饒舌). 但 JSP 提供另一個更好的解決方法, 它仍舊可以只繼承單一基礎類別, 不過這些類別可以執行多個選擇的介面.
執行此介面的類別可以在起始標籤 public int doStartTag() throws JspException 和結束標籤 public int doEndTag() throws JspException 中執行自訂作業, 但不能控制主體內容.
在 doStartTag() 所傳回的值有:
public final static int EVAL_BODY_INCLUDE : 通知伺服器將主體內容放在 out 的資料流中
public final static int SKIP_BODY : 通知伺服器不要處理任何的主體內容
在 doEndTag() 所傳回的值有:
public final static int EVAL_PAGE : 通知伺服器繼續評估網頁
public final static int SKIP_PAGE : 通知伺服器不要處理網頁的其餘部份
方法:
public int doStartTag() : 如果傳回 SKIP_BODY 則直接呼叫 doEndTag() ; 如果傳回 EVAL_BODY , 則將主體內容放在 out 資料流中.
public int doEndTag() : 之前已呼叫過 doStartTag() , 主體內容可能已經處理過, 也可能沒有處理過, 如果傳回 SKIP_PAGE , 此網頁就不再作任何評估, 就此結束; 如果傳回 EVAL_PAGE, 網頁就會繼續評估.
public abstract void setPageContext() : 設定目前的 PageContext , 並在伺服器呼叫 doStartTag() 之前.
public abstract javax.servlet.jsp.tagext.Tag getParent() : 取得最近的標籤處理常式, 並封裝此標籤處理常式, 如果找不到就傳回 null
public abstract void setParent() : 此方法設定父階標籤處理常式, 會由 getParent() 傳回, 在 doStartTag() 之前呼叫, 因此視需要存取父階的標籤處理常式
再次看 Tag 的程式運作的流程圖, 應該就比較瞭解了
廣告聯播
訂閱:
張貼留言 (Atom)
-
From: Polin Wei 現在的即時通訊 MSN 、Skype ... 等工具,都具備有檔案傳輸的功能,小檔案或許沒問題,但若要傳個 10M 以上的檔,那連用 E-Mail 寄送可能都會無法達成。 可以嚐試在自己電腦中架設 FTP Server ( FTP 伺服器)...
-
From: Polin Wei Arguments: big5lp -c -d$PROFILES$.PRINTER -n$PROFILES$.CONC_COPIES -t"$PROFILES$.TITLE" $PROFILES$.FILENAME...
-
From: Polin Wei 軟體名稱:Spiceworks 軟體性質:免費 最近版本:6.2.91.9 作業系統:Windows XP/2000/vista/7/server2008 資料庫:自帶 語言界面:英文+中文 http://www.spi...
沒有留言:
張貼留言