簡介 JSTL

来源:互联网 发布:淘宝主播烈儿老公是谁 编辑:程序博客网 时间:2024/05/16 20:29

在Servlet中撰寫HTML進行頁面輸出當然是件麻煩的事,第8章學過JSP後,你終於可以在JSP中直接寫HTML。然而,在JSP中寫Scriptlet放入Java程式碼也不是什麼好事,這跟Servlet中撰寫HTML相比其實是件半斤八兩的事。

如果你使用Model 2架構,你可以將請求處理放到Servlet,將商務邏輯放到純綷Java物件中,在JSP上則使用EL來取得值並顯示。如果你使用Model 1,你也可以將商務邏輯放到JavaBean中,在JSP上透過<jsp:useBean>、<jsp:setProperty>、<jsp:getProperty>等標籤以及來處理請求並取得結果進行顯示。

然而就目前你所學到的技術,無論如何你還是得在JSP中使用Scriptlet撰寫Java程式碼,才可以讓畫面呈現出想要的結果。例如,需要依某個條件來決定是否顯示某個網頁片段,或是需要使用迴圈來顯示表格內容。然而,HTML或JSP本身並沒有什麼<if>標籤,更沒什麼<for>標籤讓你達到這個目的

所幸這些跟頁面呈現相關的邏輯判斷標籤是存在的,可由Java EE平台中的JSTL提供。JSTL不僅提供了條件判斷的邏輯標籤,還提供了對應JSP標準標籤的擴充標籤以及更多的功能標籤。基本上,JSTL提供的標籤庫分作五個大類:

  • 核心標籤庫
提供條件判斷、屬性存取、URL處理及錯誤處理等標籤。本章會針對核心標籤庫的功能與作用進行說明。

  • 格式標籤庫
提供數字、日期等的格式化功能,以及區域(Locale)、訊息、編碼處理等國際化功能的標籤。

  • SQL標籤庫
提供基本的資料庫查詢、更新、設定資料來源(DataSource)等功能之標籤。

  • XML標籤庫
提供XML剖析、流程控制、轉換等功能之標籤。

  • 函式標籤庫
提供常用字串處理的自訂EL函式標籤庫。

JSTL是另一個標準規範,本身並非在JSP的規範當中,所以必須另外下載JSTL實作:
http://www.oracle.com/technetwork/java/index-jsp-135995.html

可以透過上面這個網頁找到JSTL的相關下載與API文件說明。如果想要直接下載JSTL,則可以在這個網址找到:
https://jstl.dev.java.net/

下載了JSTL實作(封裝好的JAR檔案)之後,必須放置到Web應用程式的WEB-INF/lib資料夾中,JSTL 1.2實作的檔案名稱是jstl-impl-1.2.jar。如果需要API文件說明,則可以在這個網址找到:
http://download.oracle.com/docs/cd/E17802_01/products/products/jsp/jstl/1.1/docs/tlddocs/

JSTL的標籤種類也蠻多的,這邊的文件只說明JSTL核心標籤庫。其它的標籤庫則請參考JSTL文件說明。要使用JSTL核心標籤庫,必須在JSP網頁上,使用taglib指示元素定義前置文件與uri參考。
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

前置文件設定了這個標籤庫在此JSP網頁中的名稱空間,以避免與其它標籤庫的標籤名稱發生衝突,慣例上使用JSTL核心標籤庫時,會使用c作為前置名稱。uri參考則告知容器,如何參考JSTL標籤庫實作。

如果你必須使用JSTL 1.0(適用於JSP 1.2、J2EE 1.3環境),除了要將jstl.jar與standard.jar複製至WEB- INF/lib資料夾,還需複製TLD檔案,並於web.xml中設定TLD檔案的位置。例如要使用核心標籤庫的話,需在web.xml中設定:
<taglib>
    <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
    <taglib-location>/WEB-INF/tlds/c.tld</taglib-uri>
</taglib>

注意uri名稱與JSTL 1.1之後不一樣(1.1之後的urihttp://java.sun.com/jsp/jstl/core)。在JSP網頁上,同樣也要使用taglib指示元素定義前置文字與uri
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core"%>


转载地址:http://caterpillar.onlyfun.net/Gossip/ServletJSP/IntroduceJSTL.html

原创粉丝点击