一 : 初識JSTL
JSTL :JSP標準標記庫(JSP Standard Tag Library,JSTL)是一個實現(xiàn)Web應(yīng)用程序中常見的通用功能的定制標記庫集,這些功能包括 :
JSTL 1.0 有四個定制標記庫:
1.core 標記庫提供了定制操作,通過限制了作用域的變量管理數(shù)據(jù),以及執(zhí)行頁面內(nèi)容的迭代和條件操作。2.format 標記庫定義了用來格式化數(shù)據(jù)(尤其是數(shù)字和日期)的操作。它還支持使用本地化資源束進行 JSP 頁面的國際化。3.xml 庫包含一些標記,這些標記用來操作通過 XML 表示的數(shù)據(jù)。4.sql 庫定義了用來查詢關(guān)系數(shù)據(jù)庫的操作。二 : 補充 :JSP技術(shù)的優(yōu)勢之一在于其定制標記庫工具。除了核心JSP標記,如 jsp:include 之外,定制標記庫工具使您能夠創(chuàng)建唯一的標記來描述以站點或應(yīng)用程序為導(dǎo)向的操作。一旦您創(chuàng)建了定制標記庫(簡稱 taglib),當您擴展項目或轉(zhuǎn)向另一個項目時您可以重復(fù)使用這些標記。您還可以將taglib傳遞給其它開發(fā)人員,從而他們可以在自己的網(wǎng)站上使用,或者在您Web應(yīng)用程序的其它部分使用。在這一系列的下一部分,我將向您展示如何創(chuàng)建自己的定制標記庫,但現(xiàn)在我們將重點關(guān)注JSP標準標記庫(JSTL)。
JSTL實際上是一組標準化用于JSP 1.2的定制標記庫。許多JSTL標記都與核心JSP標記類似,但它們可以提供更多的功能。例如,
在 JSP最佳實踐這一部分,我們將使用 c:import 標記來了解如何將Web頁面從JSP轉(zhuǎn)變成JSTL。但是,在開始使用新標記之前,我們需要將JSTL裝載到Web容器中。
JSTL 設(shè)置
雖然JSTL計劃捆綁到下一波Web容器中,但您目前必須自己進行設(shè)置。按以下步驟操作以將JSTL裝載到Web容器中:
從 apache.org下載 jakarta-taglibs-standard-current.tar.gz 。
解壓縮下載的文件。 將 jakarta-taglibs/standard-1.0.3/tld/c.tld 拷貝到 WEB/INF/tlds 目錄。
將 jakarta-taglibs/standard-1.0.3/lib 中的所有JAR文件拷貝到 WEB-INF/lib 目錄。
將以下顯示的條目添加到 WEB-INF/web.xml 部署描述符中。
重啟Web容器。 這是JSTL設(shè)置的速成版本,它可以滿足大多數(shù)情況。更詳細信息請參閱 參考資料部分。
聯(lián)合 JSTL標記
如果您希望在JSP頁面上使用任何JSTL標記,您首先必須在該頁面上聲明標記庫前綴和URL。我們正在使用核心JSTL庫,因此使用的標準前綴是 c (代表 核心)。表1顯示增加了 taglib 指令的Web站點索引文件:
表1:索引文件的taglib指令
在向JSP頁面添加了JSTL taglib之后,您可以使用核心庫中的任何標記,只需把標記的前綴改為 c 。為了了解這一流程,我們將嘗試把頁面從 jsp:include 標記轉(zhuǎn)換成 c:import 標記。 表2顯示了本系列第二部分介紹的 jsp:include 實例(見 參考資料)轉(zhuǎn)為使用新 c:import 標記。
表2:轉(zhuǎn)為JSTL
這一段程序與前面一段JSP程序之間唯一的區(qū)別是 :
非常簡單,是不是?做一個娛樂性練習(xí),嘗試自己轉(zhuǎn)換一個頁面,只需運行我們在“使用jsp:include管理動態(tài)內(nèi)容”(本系列第二部分,參閱 參考資料)中使用的JSP程序代碼并將其轉(zhuǎn)換成JSTL,如表2所示。
如果您進行了仔細研究,您可能注意到我避免改變表2中的header inclusion程序代碼。header程序代碼包含參數(shù),它增加了在此討論的復(fù)雜性。在 JSP 最佳實踐的下一部分,您將了解如何使用 c:import 來傳遞參數(shù)。我還將向您介紹 c:import 標記的一些特性,它可以提供比簡單的 jsp:include 標記更多的功能。