JSP系統(tǒng)的實(shí)現(xiàn):模板庫和標(biāo)簽庫
以下講解JSP系統(tǒng)中模板庫和標(biāo)簽庫的實(shí)現(xiàn) 。
標(biāo)簽庫的規(guī)劃和設(shè)計在整個系統(tǒng)設(shè)計中至關(guān)重要,它關(guān)系到了代碼重用的程度和系統(tǒng)運(yùn)行的效率。它的規(guī)劃應(yīng)該遵循以下原則。
1)在標(biāo)簽中應(yīng)該盡量少的包含靜態(tài)的HTML。對于一般用戶來說,標(biāo)簽是透明的。用戶不能夠查看和修改標(biāo)簽。如果在標(biāo)簽中包含了過多的靜態(tài)HT-ML語句,將影響用戶對頁面的靜態(tài)效果的修改和完善,限制標(biāo)簽的使用。
2)盡量提高代碼的重用度。在對JSP應(yīng)用進(jìn)行分類是盡量把公用的JSP應(yīng)用提取出來,形成標(biāo)簽。而不用在每個標(biāo)簽中都重復(fù)實(shí)現(xiàn)該應(yīng)用。這樣在以后要對該應(yīng)用進(jìn)行修改和完善時,只需對這一個標(biāo)簽進(jìn)行修改即可,易于代碼的維護(hù)。
3)方便用戶的使用。在設(shè)計標(biāo)簽庫時,應(yīng)該充分考慮到用戶的使用情況,使用戶能夠很容易和方便地理解和使用標(biāo)簽。
①標(biāo)簽庫的定義:定義一個標(biāo)簽庫,必須首先定義一個標(biāo)簽庫描述文件(TLD)。這是一個基于XML的腳本文件,在這個文件中定義了XML的版本、所使用的編碼、標(biāo)簽庫的版本、所使用的JSP的版本、標(biāo)簽庫的名稱和這個庫中所包含的所有的標(biāo)簽的定義和參數(shù)描述,包括標(biāo)簽的名稱,標(biāo)簽所對應(yīng)的Java類,標(biāo)簽的描述信息等。
②標(biāo)簽的實(shí)現(xiàn):一個標(biāo)簽就是一個特殊的Java
類,這個類必須繼承TagSupport類,這個類是在javax.servlet.jsp.tagext包中定義的。在標(biāo)簽類中,包含了這個標(biāo)簽的參數(shù)初始化方法(Set/Get)、標(biāo)簽的主體處理方法(Handler)以及供下一級標(biāo)簽調(diào)用的方法等。
③模板的實(shí)現(xiàn):一個模板就是一個含有標(biāo)簽引用的JSP文件。為了在模板中引用所定義的標(biāo)簽,必須首先引入標(biāo)簽庫。
<%@taglib uri=“tag.tld”prefix=“ctag”%>
其中uri指定標(biāo)簽庫描述文件的路徑;prefix指定引用標(biāo)簽時所使用的前綴。
在模板中引用指定的標(biāo)簽時,使用引入標(biāo)簽庫時所指定的前綴,指定標(biāo)簽的名稱;為標(biāo)簽的參數(shù)賦值。
【編輯推薦】