11. 一個(gè)Tag處理程序類必須實(shí)現(xiàn)的方法
答:標(biāo)簽處理程序類型 方法
Simple doStartTag, doEndTag, release
Attributes doStartTag, doEndTag, set/getAttribute...release
Body,No Itrative and doStartTag, doEndTag, release
Evaluation
Body, Itrative Evaluation doStartTag, doAterTag, doEndTag, release
Body, Interaction doStartTag, doEndTag, release, doInitbody, doAfterBody
12. 簡(jiǎn)單的標(biāo)簽處理程序類
答:1) 必須實(shí)現(xiàn)Tag接口的doStartTag()和doEndTag()方法;
2) 因?yàn)椴淮嬖贐ody,doStartTag()方法必須返回SKIP_BODY;
3) 如其余頁面要執(zhí)行,doEndTag()方法返回EVAL_PAGE, 否則返回SKIP_PAGE;
4) 對(duì)于每一個(gè)標(biāo)簽屬性,你必須在標(biāo)簽處理程序類里定義一個(gè)特性以及get和set方法以一致于JavaBeans體系慣例
13. 帶Body的自定義標(biāo)簽
答:1) 必須實(shí)現(xiàn)Tag接口的doStartTag()和doEndTag()方法;
2) 可以實(shí)現(xiàn)IterationTag接口的doAfterBody()方法;
3) 可以實(shí)現(xiàn)BodyTag接口的doInitBody和setBodyContent方法;
4) doStartTag方法可以返回SKIP_BODY、EVAL_BODY_INCLUDE、或者EVAL_BODY_BUFFERED(當(dāng)你想使用BodyContent);
5) doEndTag方法可以返回SKIP_PAGE或EVAL_PAGE;
6) doAfterBody方法可以返回EVAL_BODY_AGAIN, SKIP_BODY;
14. 定義腳本變量的標(biāo)簽(迭代的標(biāo)簽庫)
答:1) 定義腳本標(biāo)簽的二個(gè)步驟:
a. 在標(biāo)記庫描述符(TLD)文件中列明腳本變量;
b. 定義標(biāo)簽擴(kuò)展信息類(TEI)并且在TLD文件中包括這個(gè)類元素(tei-class);
2) 變量必須在標(biāo)簽處理程序類中使用pageContext.setAttribute()方法設(shè)置;
3) 標(biāo)簽擴(kuò)展信息類(TEI)必須繼承TagExtraInfo以及覆蓋getVariableInfo()方法;
4) 變量的范圍可以是AT_BEGIN, NESTED, AT_END(標(biāo)簽擴(kuò)展信息類(TEI)的VariableInfo中定義)之一;
15. 腳本變量的有效性
答:變量 | 有效性
---------------------------------------
NESTED | 標(biāo)簽中的參數(shù)在starttag到endtag之間是有效的
AT_BEGIN | 標(biāo)簽中的參數(shù)在標(biāo)簽的開始到JSP頁面結(jié)束是有效的
AT_END | 標(biāo)簽中的參數(shù)在標(biāo)簽的結(jié)束到JSP頁面結(jié)束是有效的
元素listener
標(biāo)簽庫可以指定一些類——事件監(jiān)聽類。(參照處理servlet生命周期事件)。這些監(jiān)聽類都作為listener元素列于TLD中,網(wǎng)絡(luò)容器將實(shí)例化監(jiān)聽類并通過與在WAR中定義的監(jiān)聽類類似的方法來注冊(cè)。不像WAR級(jí)的監(jiān)聽類,,標(biāo)簽庫中注冊(cè)的監(jiān)聽類沒有定義順序。Listener元素的唯一子元素是listener-class,它必須包含監(jiān)聽類名的全稱。
http://www.leftworld.net/online/j2ee/13.htm