由於傳統標籤使用三個標籤接口來完成不同的功能,顯得過於繁瑣,不利於標籤技術的推廣,SUN公司爲降低標籤技術的學習難度,在JSP2.0中定義了一個更爲簡單、便於編寫和調用的SimpleTag接口來實現標籤的功能。實現SimpleTag接口的標籤通常稱爲簡單標籤。簡單標籤共定義了5個方法:
setJspContext方法
setParent和getParent方法
setJspBody方法
doTag方法
SimpleTag方法介紹:
setJspContext方法:
用於把JSP頁面的pageContext對象傳遞給標籤處理器對象;
setParent方法:
用於把父標籤處理器對象傳遞給當前標籤處理器對象;
getParent方法:
用於獲得當前標籤的父標籤處理對象;
setJspBody方法:
用於把代表標籤體的JspFragment對象傳遞給標籤處理器對象;
doTag方法:
用於完成所有的標籤邏輯,包括輸出、迭代、修改標籤體內容等。在doTage方法中可以拋出javax.servlet.jsp.SkipPageException異常,用於通知WEB容器不在執行JSP頁面中位於結束標記後面的內容,這等效於在傳統標籤的doEndTag方法中返回Tag.SKIP_PAGE常量的情況。
JspFragment類:
javax.servlet.jsp.tagext.JspFragment類是在JSP2.0中定義的,它的實力對象代表JSP頁面中的一段符合JSP語法規範的JSP片段,這段JSP片段中不能包含JSP腳本元素。
WEB容器在處理簡單標籤的標籤體時,會把標籤體內容用一個JspFragment對象表示,並調用標籤處理器對象的setJspBody方法把JspFragment對象傳遞給標籤處理器對象。JspFragment類中只定義了兩個方法,如下所示:
getJspContext方法:
用於返回代表調用頁面的JspContext對象;
public abstract void invoke(java.io.Writer.out):
用於執行JspFragment對象所代表的JSP代碼片段;
參數out用於指定將JspFragment對象的執行結果寫入到哪個輸出流對象中,如果傳遞給參數out的值爲null,則將執行結果寫入到JspContext.getOut()方法返回的輸出流對象中。