JSTL和EL的區別
JSTL是壹個不斷完善的開放源代碼,EL只是壹個表達式。
JSTL簡介:
JSP 標準標簽庫(JSP Standard Tag Library,JSTL)是壹個實現 Web應用程序中常見的通用功能的定制標記庫集,這些功能包括叠代和條件判斷、數據管理格式化、XML 操作以及數據庫訪問。
在 developerWorks 上其新系列的第壹篇文章中,軟件工程師Mark Kolb 向您展示了如何使用 JSTL 標記來避免在 JSP 頁面中使用腳本編制元素。您還將了解如何通過從表示層刪除源代碼來簡化軟件維護。最後,您將了解 JSTL 經過簡化的表達式語言,它允許在不必使用功能齊全的編程語言的情況下對 JSTL 操作指定動態屬性值。
JavaServer Pages(JSP)是用於 J2EE 平臺的標準表示層技術。JSP 技術提供了用於執行計算(這些計算用來動態地生成頁面內容)的腳本編制元素和操作。腳本編制元素允許在 JSP 頁面中包括程序源代碼,在為響應用戶請求而呈現頁面時可以執行這些源代碼。
操作將計算操作封裝到很象 HTML 或 XML 標記的標記中,JSP 頁面的模板文本通常包含這些標記。JSP 規範只將幾種操作定義成了標準,但從 JSP 1.1 開始,開發人員已經能夠以定制標記庫的方式創建其自己的操作了。
JSP 標準標記庫(JSTL)是 JSP 1.2 定制標記庫集,這些標記庫實現大量服務器端 Java應用程序常用的基本功能。通過為典型表示層任務(如數據格式化和叠代或條件內容)提供標準實現,JSTL 使 JSP 作者可以專註於特定於應用程序的開發需求,而不是為這些通用操作“另起爐竈”。
當然,您可以使用 JSP 腳本編制元素(scriptlet、表達式和聲明)來實現此類任務。例如,可以使用三個 scriptlet 實現條件內容,清單 1 中著重顯示了這三個 scriptlet。但是,因為腳本編制元素依賴於在頁面中嵌入程序源代碼(通常是 Java 代碼)。
所以對於使用這些腳本編制元素的 JSP 頁面,其軟件維護任務的復雜度大大增加了。例如,清單 1 中的 scriptlet 示例嚴格地依賴於花括號的正確匹配。如果不經意間引入了壹個語法錯誤,則條件內容中的嵌套其它?scriptlet可能會造成嚴重破壞,並且在 JSP容器編譯該頁面時,要使所產生的錯誤信息有意義可能會很困難。
EL簡介:
EL(Expression Language) 是為了使JSP寫起來更加簡單。表達式語言的靈感來自於 ECMAScript 和 XPath 表達式語言,它提供了在 JSP 中簡化表達式的方法,讓Jsp的代碼更加簡化。
註意當表達式根據名稱引用這些對象之壹時,返回的是相應的對象而不是相應的屬性。例如:即使現有的 pageContext 屬性包含某些其他值,${pageContext} 也返回 PageContext 對象。
註意 <%@ page isELIgnored="true" %> 表示是否禁用EL語言,TRUE表示禁止.FALSE表示不禁止.JSP2.0中默認的啟用EL語言。