部落客廣告聯播

2008年5月1日 星期四

關於CustomTag的TEI

在開發JSP custom tag 時,要將tag中的data放到pageContext中以利JSP頁面撈用,
通常都是在Tag中用pageContext.setAttribute("varName",var),
此外還要讓JSP知道有哪些變數可用,有兩種方法:

  1. 在.tld裡面該Tag區段中宣告元素及其內容
  2. 另外寫個TEI class (Tag Extra Info) ,然後在.tld檔中使用元素指明class位置

其中使用2的方法有時算是比較複雜的狀況下非得用到。

然而在TEI clas的getVariableInfo方法中, 我們使用TagDatao(這是這個method傳入的參數)的getAttribute或getAttributeString兩個方法時, 記得我們的tag的attribute內容必須是靜態的,也就是說不能是runtime決定的變數內容。

原因在於TEI class是在translation time(也就是JSP轉servlet)時就叫用的。

沒有留言: