<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JSTL詳解(一)

    概述

    JSP 頁面中,使用標(biāo)簽庫代替?zhèn)鹘y(tǒng)的 Java 片段語言來實(shí)現(xiàn)頁面的顯示邏輯已經(jīng)不是新技術(shù)了,然而,由自定義標(biāo)簽很容易造成重復(fù)定義和非標(biāo)準(zhǔn)的實(shí)現(xiàn)。鑒于此,出現(xiàn)了 JSTL JSP Standard Tag Library )。大多數(shù) JSP 頁面邏輯提供了實(shí)現(xiàn)的 JSTL 技術(shù),該技術(shù)本身就是一個(gè)標(biāo)簽庫。

    Sun 公司 Java 規(guī)范標(biāo)準(zhǔn)的 JSTL apache jakarta 組織負(fù)責(zé)維護(hù)。作為開源的標(biāo)準(zhǔn)技術(shù),它一直在不斷地完善。 JSTL 的發(fā)布包有兩個(gè)版本: Standard-1.0 Taglib Standard-1.1 Taglib ,它們?cè)谑褂脮r(shí)是不同的。

    q???????? Standard-1.0 Taglib JSTL1.0 )支持 Servlet2.3 JSP1.2 規(guī)范, Web 應(yīng)用服務(wù)器 Tomcat4 支持這些規(guī)范,而它的發(fā)布也在 Tomcat 4.1.24 測(cè)試通過了。

    q???????? Standard-1.1 Taglib JSTL1.1 )支持 Servlet2.4 JSP2.0 規(guī)范, Web 應(yīng)用服務(wù)器 Tomcat5 支持這些規(guī)范,它的發(fā)布在 Tomcat 5.0.3 測(cè)試通過了。

    在本章的介紹中,將以由 Sun 發(fā)布的 Standard-1.1 Taglib 標(biāo)簽庫為主,而 apache jakarta 組織發(fā)布的開源標(biāo)簽庫,可以從 http://jakarta.apache.org/taglibs/ 找到所需要的幫助。 Sun 發(fā)布的標(biāo)準(zhǔn) JSTL1.1 標(biāo)簽庫有以下幾個(gè)標(biāo)簽:

    q???????? 核心標(biāo)簽庫:包含 Web 應(yīng)用的常見工作,比如:循環(huán)、表達(dá)式賦值、基本輸入輸出等。

    q???????? 國(guó)際化標(biāo)簽庫:用來格式化顯示數(shù)據(jù)的工作,比如:對(duì)不同區(qū)域的日期格式化等。

    q???????? 數(shù)據(jù)庫標(biāo)簽庫:可以做訪問數(shù)據(jù)庫的工作。

    q???????? XML 標(biāo)簽庫:用來訪問 XML 文件的工作,這是 JSTL 標(biāo)簽庫的一個(gè)特點(diǎn)。

    q???????? 函數(shù)標(biāo)簽庫:用來讀取已經(jīng)定義的某個(gè)函數(shù)。

    此外, JSTL 還提供了 EL 表達(dá)式語言( Expression Language )來進(jìn)行輔助的工作。

    JSTL 標(biāo)簽 庫由標(biāo)簽庫和 EL 表達(dá)式語言兩個(gè)部分組成。 EL JSTL 1.0 規(guī)范中被引入,當(dāng)時(shí)用來作為 Java 表達(dá)式來工作,而該表達(dá)式必須配合 JSTL 的標(biāo)簽庫才能得到需要的結(jié)果。

    說明:在 JSTL 1.1 規(guī)范中, JSP2.0 容器已經(jīng)能夠獨(dú)立的理解任何 EL 表達(dá)式。 EL 可以獨(dú)立出現(xiàn)在 JSP 頁面的任何角落。本文隨后的內(nèi)容將以 JSTL 1.1 規(guī)范作為介紹的重點(diǎn)。

    9.2.1? JSTL EL 表達(dá)式語言簡(jiǎn)介

    EL 是從 JavaScript 腳本語言得到啟發(fā)的一種表達(dá)式語言,它借鑒了 JavaScript 多類型轉(zhuǎn)換無關(guān)性的特點(diǎn)。在使用 EL scope 中得到參數(shù)時(shí)可以自動(dòng)轉(zhuǎn)換類型,因此對(duì)于類型的限制更加寬松。 Web 服務(wù)器對(duì)于 request 請(qǐng)求參數(shù)通常會(huì)以 String 類型來發(fā)送,在得到時(shí)使用的 Java 語言腳本就應(yīng)該是 request.getParameter(“XXX”) ,這樣的話,對(duì)于實(shí)際應(yīng)用還必須進(jìn)行強(qiáng)制類型轉(zhuǎn)換。而 EL 就將用戶從這種類型轉(zhuǎn)換的繁瑣工作脫離出來,允許用戶直接使用 EL 表達(dá)式取得的值,而不用關(guān)心它是什么類型。

    下面的示例就是一個(gè) EL 表達(dá)式,見例 9.1

    9.1 :簡(jiǎn)單 EL 表達(dá)式

    <%@ page contentType="text/html; charset=UTF-8"%>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

    <html>

    ? <body>

    ??? ${sampleValue + 1} <br>

    ? </body>

    </html>

    這個(gè)示例將在 JSP 頁面顯示為“ 1 ”, EL 表達(dá)式必須以“ ${XXX} ”來表示,其中“ XXX ”部分就是具體表達(dá)式內(nèi)容,“ ${} ”將這個(gè)表達(dá)式內(nèi)容包含在其中作為 EL 表達(dá)式的定義。本示例可以在滿足 JSP2.0 規(guī)范的任何 Web 應(yīng)用服務(wù)器中使用。

    9.2.2? EL 表達(dá)式的默認(rèn)變量

    一個(gè) EL 表達(dá)式包含變量和操作符兩個(gè)內(nèi)容。任何存在于 JSP 作用范圍的 JavaBean 都可以被轉(zhuǎn)化成 EL 表達(dá)式來使用,它所包含的默認(rèn)變量如下:

    1 .默認(rèn)變量 pageScope requestScope sessionScope applicationScope

    4 個(gè)默認(rèn)變量包含 Scope 作用范圍的參數(shù)集合,相當(dāng)于被保存在 java.util.Map 中的某個(gè)參數(shù)。下面看簡(jiǎn)單的示例 9.2

    9.2 :使用 sessionScope 變量的 EL 表達(dá)式

    <%request.getSession().setAttribute("sampleValue", new Integer(10));%>

    ${sessionScope.sampleValue}

    取得保存在 Session 中參數(shù)的 sessionScope 變量的 EL 表達(dá)式,“ . ”是 property 訪問操作符,在這里表示從 Session 中取得“鍵”為“ sampleValue ”的參數(shù),并顯示出來。顯示結(jié)果為“ 10 ”。

    2 .默認(rèn)變量 param paramValues

    這兩個(gè)默認(rèn)變量包含請(qǐng)求參數(shù)的集合, param 表明請(qǐng)求包含的參數(shù)為單一控件, paramValues 表明請(qǐng)求包含的參數(shù)為控件數(shù)組。下面看一個(gè)簡(jiǎn)單示例 9.3

    9.3 :提交請(qǐng)求的頁面和接受的頁面

    <%@ page contentType="text/html; charset=UTF-8"%>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

    <html>

    ? <body>

    ? ???? <form action="SampleJsp.jsp">

    ??? <input type="text" name="sampleValue" value="10">

    ??? <input type="text" name="sampleValue" value="11">

    ??? <input type="text" name="sampleValue" value="12">

    ??? <input type="text" name="sampleSingleValue" value="SingleValue">

    ??? <input type="submit" value="Submit">

    ??? </form>

    ? </body>

    </html>

    在這個(gè)頁面中定義了兩組控件,控件名為“ sampleValue ”的是一套控件數(shù)組,控件名為“ sampleSingleValue ”的是單一控件,通過遞交將請(qǐng)求參數(shù)傳送到 SampleJsp.jsp

    <%@ page contentType="text/html; charset=UTF-8"%>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

    <html>

    ? <body>

    ??? ${paramValues.sampleValue[2]} <br>

    ??? ${param.sampleSingleValue} <br>

    ? </body>

    </html>

    這是請(qǐng)求轉(zhuǎn)發(fā)到的頁面,通過 EL 表達(dá)式的 paramValues 變量得到控件數(shù)組中最后一個(gè)控件的遞交參數(shù),通過 EL 表達(dá)式的 param 變量得到單一控件的遞交參數(shù)。控件數(shù)組參數(shù)的 EL 表達(dá)式使用“ [] ”來指定數(shù)組下標(biāo)。本示例將顯示控件數(shù)組中最后一個(gè)控件的值“ 12 ”和單一控件的值“ SingleValue ”。

    3 .默認(rèn)變量 header headerValues

    這兩個(gè)默認(rèn)變量包含請(qǐng)求參數(shù)頭部信息的集合, header 變量表示單一頭部信息, headerValues 則表示數(shù)組型的頭部信息。

    4 .默認(rèn)變量 cookie

    包含所有請(qǐng)求的 cookie 集合,集合中的每個(gè)對(duì)象對(duì)應(yīng) javax.servlet.http.Cookie

    5 .默認(rèn)變量 initParam

    包含所有應(yīng)用程序初始化參數(shù)的集合。

    6 .默認(rèn)變量 pageContext

    等價(jià)于 page 環(huán)境類 javax.servlet.jsp.PageContext 的實(shí)例,用來提供訪問不同的請(qǐng)求參數(shù)。

    11 個(gè)默認(rèn)變量幾乎包含了 Web 應(yīng)用的所有基本操作,若一個(gè)表達(dá)式不使用這些變量而直接使用參數(shù)名,那么就采用就近原則。該表達(dá)式將使用最近取得的參數(shù)值。



    posted on 2007-01-18 09:57 nbt 閱讀(4266) 評(píng)論(1)  編輯  收藏 所屬分類: Servele&JSP和js

    評(píng)論

    # re: JSTL詳解(一) 2010-03-31 15:24 若夜

    不錯(cuò),蠻詳細(xì)的!!!  回復(fù)  更多評(píng)論   

    <2007年1月>
    31123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊(cè)

    收藏夾

    Java技術(shù)網(wǎng)站

    友情鏈接

    國(guó)內(nèi)一些開源網(wǎng)站

    最新隨筆

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 久久久久一级精品亚洲国产成人综合AV区 | 久久精品亚洲福利| 久久精品亚洲男人的天堂| 亚洲va久久久噜噜噜久久天堂| 久久亚洲国产中v天仙www| 亚洲综合婷婷久久| 亚洲乱码在线观看| 深夜a级毛片免费视频| 福利免费在线观看| 四虎免费影院ww4164h| 日本免费人成黄页在线观看视频 | 中文字幕亚洲日韩无线码| 91亚洲精品视频| 亚洲国产精品成人综合色在线| 一边摸一边爽一边叫床免费视频 | 免费黄网站在线观看| 无码高潮少妇毛多水多水免费| 亚洲国产成人a精品不卡在线| 亚洲成AV人片在WWW色猫咪| 亚洲a级成人片在线观看| 麻豆安全免费网址入口| 国产高清不卡免费视频| 扒开双腿猛进入爽爽免费视频 | 久久亚洲精品无码播放| 亚洲精品日韩专区silk| 国产亚洲精品美女久久久久久下载| 中文字幕视频免费在线观看| 成人免费视频77777| 国产日产亚洲系列最新| 亚洲av永久无码精品三区在线4| 一级毛片成人免费看a| 99久久99久久精品免费看蜜桃| 亚洲AV无码乱码在线观看牲色| 亚洲精品日韩中文字幕久久久| 日韩免费码中文在线观看| 3344免费播放观看视频| 亚洲色一色噜一噜噜噜| 亚洲人xxx日本人18| 在线涩涩免费观看国产精品| 永久免费看mv网站入口| 91亚洲导航深夜福利|