JSP 標(biāo)準(zhǔn)標(biāo)記庫(JSP Standard Tag Library,JSTL)是一個實現(xiàn) Web 應(yīng)用程序中常見的通用功能的定制標(biāo)記庫集,這些功能包括迭代和條件判斷、數(shù)據(jù)管理格式化、XML 操作以及數(shù)據(jù)庫訪問。
EL是 JSTL 經(jīng)過簡化的表達(dá)式語言,它允許在不必使用功能齊全的編程語言的情況下對 JSTL 操作指定動態(tài)屬性值。
首先,JSTL現(xiàn)在采用獨立于JSP標(biāo)記的規(guī)范來定義。因此,即使JSP規(guī)范發(fā)生改動,也可以保證JSTL標(biāo)記的一致性。容易受到JSP容器變更影響的許多應(yīng)用程序都將受益于JSTL規(guī)范。 其次,JSTL具有比核心JSP標(biāo)記更強(qiáng)大的功能,正如您在最佳實踐系列中所視, c:import不僅 可以導(dǎo)入其它站點的URL,而且,它還可以導(dǎo)入 jsp:include 標(biāo)記不可用的更為復(fù)雜的內(nèi)容。 最后,JSTL使用自己的表達(dá)式語言(expression language,EL)。JSTL EL可以相當(dāng)靈活地寫入JSP代碼,是對核心JSP語言的有力補(bǔ)充。
在JSP2.0中,通過使用 JSTL + EL,可以開發(fā)出沒有 Scriptlets 的 JSP 。這就使得 JSP 的開發(fā)非常簡單,非 JAVA 程序員都能勝任。另外,通過使用 JSTL,可以使編程的代碼量大大減少。
developerWords中國 JSTL入門系列: 第1部分, " JSTL 入門:表達(dá)式語言" (2003年2月) 通過將常用功能包裝到定制標(biāo)記庫的標(biāo)準(zhǔn)集合中,JSTL 使 JSP 作者可以減少對編制腳本元素的需求,甚至可以不需要它們,并避免了相關(guān)的維護(hù)成本。 第2部分, " JSTL 入門:探討 core" (2003年3月) JSTL core 庫為一些基本功能(如,管理限定了作用域的變量和與 URL 交互等)和基本操作(如,迭代和條件化)提供了定制標(biāo)記。這些標(biāo)記不僅可以由頁面設(shè)計人員直接利用,而且還為與其它 JSTL 庫相結(jié)合從而提供更復(fù)雜的表示邏輯奠定了基礎(chǔ)。
第3部分, " JSTL 入門:表示就是一切" (2003年4月) JSTL fmt 庫中的定制標(biāo)記支持通過資源束對文本內(nèi)容進(jìn)行本地化,并支持對數(shù)字和日期的顯示和解析。
第4部分, " JSTL 入門:訪問SQL和XML內(nèi)容" (2003年5月) 如果您愿意接受將業(yè)務(wù)邏輯包含到表示層的結(jié)果,這兩個庫中的標(biāo)記都使其能夠非常輕松地將XML文件和關(guān)系數(shù)據(jù)庫中的內(nèi)容結(jié)合到JSP頁面。這兩個庫還展示了當(dāng)集成<sql:query> 和<c:forEach>時,JSTL庫如何構(gòu)建和集成,以及xml 庫利用<c:import> 操作的能力。 其他: JSP 2.0: The New Deal, Part 1 EL 函數(shù)部分 當(dāng) EL 從 JSTL 規(guī)范中移到 JSP 規(guī)范中,它使用了一個如何進(jìn)行函數(shù)調(diào)用的技巧。這個EL函數(shù)語法非常簡單:方法名,緊接著在圓括號中有一組參數(shù): <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> ${fn:length(myCollection)}
pageContext: 提供對頁面屬性的訪問。 ${pageContext.request.contextPath} 返回請求的上下文路徑 等內(nèi)置屬性。