首頁 > Java > java教程 > 主體

什麼是jstl

(*-*)浩
發布: 2020-09-15 14:36:52
原創
7439 人瀏覽過

JSTL全名為JavaServer Pages Standard Tag Library,中文意思為“JSP標準標籤庫”,是一個不斷完善的開放原始碼的JSP標籤庫。開發人員可以利用這些標籤取代JSP頁面上的Java程式碼,進而提高程式的可讀性,降低程式的維護難度。

什麼是jstl

JSTL(Java server pages standarded tag library,即JSP標準標籤庫)是由JCP(Java community Proces)所製定的標準規範,它主要提供給Java Web開發人員一個標準通用的標籤庫,並由Apache的Jakarta小組來維護。開發人員可以利用這些標籤取代JSP頁面上的Java程式碼,進而提高程式的可讀性,降低程式的維護難度。

JSTL只能運作在支援JSP1.2和Servlet2.3規範的容器上,例如tomcat 4.x。在JSP 2.0中也是作為標準所支持的。

推薦課程:Java教學

JSTL 1.0 發佈於 2002 年 6 月,由四個客製化標記庫(core、format、xml 和 sql)和一對通用標記庫驗證器(ScriptFreeTLV 和 PermittedTaglibsTLV)組成。 core 標記庫提供了客製化操作,透過限制了作用域的變數管理數據,以及執行頁面內容的迭代和條件操作。它還提供了用來產生和操作 URL 的標記。顧名思義,format 標記庫定義了用來格式化資料(尤其是數字和日期)的操作。它還支援使用本地化資源束進行 JSP 頁面的國際化。 xml 函式庫包含一些標記,這些標記用來操作透過 XML 表示的數據,而 sql 函式庫定義了用來查詢關係型資料庫的操作。

如果要使用JSTL,則必須將jstl.jar和standard.jar檔案放到classpath中,如果你還需要使用XML processing及Database access (SQL)標籤,也要將相關JAR檔放到classpath中,這些JAR檔案全部存在於下載回來的zip檔中。

Jstl帶來的優雅程式設計體驗人所皆知,在java社群蒸蒸日上的今天使用jstl已無需考慮很多問題,我們可以用myeclipse等java整合開發環境輕鬆搭建一個jstl的web專案。即使有了myeclipse這麼有力的工具幫我們快速開發web項目,但是有一些知識我們必須了解的 ---- 那就是jstl與servlet版本,以及jsp版本之間的依賴關係。

詳細介紹

JSP 標準標籤庫(JSP Standard Tag Library,JSTL)是實作網頁應用程式中常見的通用功能的客製化標記庫集,這些功能包括迭代和條件判斷、資料管理格式化、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容器編譯該頁面時,要使所產生的錯誤訊息有意義可能會很困難。

清單 1. 透過 scriptlet 實作條件內容

<% if (user.getRole() == "member")) { %>
<p>Welcome, member!</p>
<% } else { %>
<p>Welcome, guest!</p>
<% } %>
登入後複製

修正此類問題通常需要相當豐富的程式設計經驗。儘管通常會由十分精通頁面佈局和圖形設計的設計人員來開發和維護 JSP,但是同一頁面中的腳本編制元素出現問題時,需要程式設計師的介入。這種狀況將單一文件中程式碼的責任分擔給多人,從而使得開發、調試和增強此類 JSP 頁面成為很麻煩的任務。透過將常用功能包裝到自訂標記庫的標準集合中,JSTL 使JSP 作者可以減少對編制腳本元素的需求,甚至可以不需要它們,並避免了相關的維護成本

##例子可以很簡單把後端資料顯示到頁面中: 

您的使用者名稱是:


顯示使用者的使用者名,如為空則顯示guest


指定從session中取得username的值顯示;


#username的值,預設是從request(page)取,如果request中沒有名為username的物件則從session中取,session中沒有則從application(servletContext)中取,如果沒有取到任何值則不顯示。

以上是什麼是jstl的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板