JSTL1.1學習-之核心庫

一.JSTL簡介
    JSTL全名爲JSP Standard Tag Libaray(JSP標準標籤函數庫),目前最新的版本爲

1.1,它是由JCP(Java Commnunity Process)制定的標準規範,提供給我們一個標準通用的

標籤函數庫.主要分爲5大類:
    (1)核心標籤庫(Core)
    (2)I18N格式標籤庫(I18N-capable format tab libaray)
    (3)SQL標籤庫(SQL tag libaray)
           (4)XML標籤庫(XML tag libaray)
    (5)函數標籤庫(Functions tag libaray)
二.使用JSTL的好處

    Web程序員能供利用JSTL和EL來開發Web程序,取代傳統直接的在頁面上腳本的方式

(scriplet),提高程序的可讀性,易如維護,和開發。使得在視圖頁面上基本不用使用

腳本代碼的,從而頁面設計人員和標籤的功能開發人員分離,甚至頁面設計人員不用學

習JSP腳本語言

三.前提條件:
    JSTL1.1必須在Servlet2.4和JSP2.0以上的容器才能正常工作
    下載JSTL1.1
    地址:http://jakarta.apache.org/builds/jakata-tablibs/releases/standard/
    MyEclipse5.1以後的版本自帶了JSTL1.1 
    下載後把jstl.jar,standard.jar複製到你的web工程/WEB-INF/lib/目錄下,還有這

些標籤庫描述文件:c-1_0-rt.tld,c-1_0.tld,c.tld等等
    在jsp頁面中添加
    <%@ taglib uri=“uri” prefix=“prefix” %>

四.核心標籤庫(CTL)
功能表:
分類
   
功能分類
   
標籤名稱


Core
   
表達式操作
   
out、set、remove、catch
流程控制
   
if、choose、when、otherwise
迭代操作
   
forEach
forTokens
URL操作
   
import param
url param
redirect param

下面我們來具體看看:

    * 表達式操作

            1.< c:out value=“${value}” [escapeXml=“true | false”]

[default=“defaultvalue”] />             
                用途:頁面寫(出入)數據 
                屬性:
                value 顯示得值,它是object類型,可以爲EL
                escapeXml 是否是使用轉換符號,比如:< (<) 、 > ($gt)等等
                default 設置默認值
           2.< c:set>
            < c:set value=“${value}” var=“unable-EL” scope=“unable-EL”

target=“${target}”  property=“${property}” />             
            用途:變量設置
            屬性:
            value  設置變量的值、Object類型
            var     設置變量的名稱、String類型、不能爲EL表達式
            scope  設置變量的範圍、String類型、不能爲EL表達式、默認值:page、

可爲application,session,request
            target   查找的JavaBean或java.util.Map對象,Object
            property   targer指定的對象的屬性
           3.< c:remove>
            < c:remove var=“variable” scope=“page | application | session

| request”/>         
            用途:變量容器去變量
            屬性(均不能爲EL):
            scope  變量存儲的範圍
            var 爲變量名稱
           4.< c:catch [var=“variable”] />
            用途:捕捉異常 
            屬性:
            var :用類存儲錯誤信息的變量

    * 流程控制
      1.< c:if test=“${value1 == value2}” var=“save_test_result” scope=“

application | request | ….” />
      判斷語句
      屬性:
      test 爲Boolean類型、邏輯表達式結果
      var 爲String類型,保存test的結果,爲”true”|”false”
      scope 爲String類型、變量var的存儲範圍

             2.< c:choose>
            爲< c:when>、< c:otherwise>的父標籤
            主題內容(BodyContent)
            1或多個< c:when>
            0或多個< c:otherwise> 
            例如:
            < c:choose>
            < c:when/>
            < c:otherwise>
            < c:when/>
            < /c:choose>

            3.< c:when>

            用法和< c:if>差不多,但是它必須在< c:otherwise>之前(相當於if必須

在else之前)
            屬性:
            test   和c:if test屬性一樣
            4.< c:otherwise>
            相當於else語句,當<c:when>的條件不成立時,運行其主題內容
            比如:
            < c:when test=“${user.role == “admin”}” >
            < c:out value=“你好管理員先生:${user.name}”/>
            < /c:when>
            < c:otherwise >
                <c:out value=“你好!”/>
            < /c:otherwise>

    * 迭代操作

         1.< c:forEach var=“unable-el” item=“Collection” [varStatus=

“unable-el”] [begin=“begin-index”] [end=“end-index”] [step=“step-

length”]>
        在Collection對象中迭代操作
        屬性:
        var: 變量名稱,String類型,不能爲EL
        Item:Collection對象, 可以爲EL
        varStatus:變量的成員信息,String類型,不能爲EL
        begin:迭代時候的變量開始位置,int類型,默認值:0
        end:迭代時候的變量結束位置,int類型
        step:爲步長,int類型,默認值爲1
       2.< c:forTokens item=“StringTokens” delims=“delimiters” [var=

“variableName”] [varStatuts=“uanble-el”] [begin=“begin-index”] [end=

“end-index”] [step=“step-length”] >BodyContent< /c:forTokens>
        從StringToken利用界定符號迭代
        屬性:
        var: 變量名稱,String類型,不能爲EL
        Item:String對象,多爲正則表達式, 可以爲EL
        varStatus:變量的成員信息,String類型,不能爲EL
        begin:迭代時候的變量開始位置,int類型,默認值:0
        end:迭代時候的變量結束位置,int類型
        step:爲步長,int類型,默認值爲1

    * URL操作

       1.BodyContent
用於把其他靜態或動態的文件包含至本身的JSP頁面。又區別於,他不但能夠包含自身web

應用程序的文件,還能夠        包含不同的web應用程序的的文件。
        屬性
        uri 文件包含的地址 String類型
        context 在相同容器下,不同的web站臺必須”/”開頭,String類型
        var: 變量名稱,存儲文件中的內容,String類型,不能爲EL
       scope 爲String類型、變量var的存儲範圍,不能爲EL
       charEncoding 文件內容的編碼   String類型
       varReader 以Reader對象的形式存儲文件中的內容,不能爲EL
       2.< c:param name=“${name}” value=“${param.name}” />
        請求中的參數
        屬性:
        name : 參數名稱 ,String類型
        value : 對應參數的值
        比如:
        < c:import url=“www.xxxx.com “ >
            <c:param name=“name” value=“yourname” />
        < /c:import >
        等同於:
        http://www.xxxx.com?name=yourname
        3.< c:url value=“${value}” [context=“${context}”] [var=“varName

”] [scope=“application | request”] />
        產生一個url,其中主題內容必須文
        屬性:
        value url地址 String類型
       context 在相同容器下,不同的web站臺必須”/”開頭,String類型
        var: 變量名稱,存儲文件中的內容,String類型,不能爲EL
       scope 爲String類型、變量var的存儲範圍,不能爲EL
        比如:
       < img src=“<c:url value=‘www.xxxx.com’ >< c:param name=‘picture’

value=‘picName’/></c:url>” />
< img src=“www.xxxx.com/?pictue=picName” />
       4.< c:redirect url=“${url}” [context=“${context}”] />
        從定向到url
        屬性:
        uri 文件包含的地址 String類型
        context 在相同容器下,不同的web站臺必須”/”開頭,String類型
        比如:
           < c:redirect url=“<c:url value=‘www.xxxx.com’>< c:param name=‘

paramName’ value=‘paramName’ /></c:url>” context=“/contextName” />
    等同< c:redirect url=“< c:url value=‘www.xxxx.com’ /></c:url>”

context=“/contextName” >< c:param name=“paramName” value=‘paramValue’

/></c:redirect>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章