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

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

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

    posts - 0,  comments - 17,  trackbacks - 0

        在 JSP 頁面中,使用標簽庫代替傳統的 Java 片段語言來實現頁面的顯示邏輯已經不是新技術了,然而,由自定義標簽很容易造成重復定義和非標準的實現。鑒于此,出現了 JSTL ( JSP Standard Tag Library )。大多數 JSP 頁面邏輯提供了實現的 JSTL 技術,該技術本身就是一個標簽庫。
    Sun 公司 Java 規范標準的 JSTL 由 apache jakarta 組織負責維護。作為開源的標準技術,它一直在不斷地完善。 JSTL 的發布包有兩個版本: Standard-1.0 Taglib 、 Standard-1.1 Taglib ,它們在使用時是不同的。
    q         Standard-1.0 Taglib ( JSTL1.0 )支持 Servlet2.3 和 JSP1.2 規范, Web 應用服務器 Tomcat4 支持這些規范,而它的發布也在 Tomcat 4.1.24 測試通過了。
    q         Standard-1.1 Taglib ( JSTL1.1 )支持 Servlet2.4 和 JSP2.0 規范, Web 應用服務器 Tomcat5 支持這些規范,它的發布在 Tomcat 5.0.3 測試通過了。
    在本章的介紹中,將以由 Sun 發布的 Standard-1.1 Taglib 標簽庫為主,而 apache jakarta 組織發布的開源標簽庫,可以從 http://jakarta.apache.org/taglibs/ 找到所需要的幫助。 Sun 發布的標準 JSTL1.1 標簽庫有以下幾個標簽:
    q         核心標簽庫:包含 Web 應用的常見工作,比如:循環、表達式賦值、基本輸入輸出等。
    q         國際化標簽庫:用來格式化顯示數據的工作,比如:對不同區域的日期格式化等。
    q         數據庫標簽庫:可以做訪問數據庫的工作。
    q         XML 標簽庫:用來訪問 XML 文件的工作,這是 JSTL 標簽庫的一個特點。
    q         函數標簽庫:用來讀取已經定義的某個函數。
    此外, JSTL 還提供了 EL 表達式語言( Expression Language )來進行輔助的工作。

    JSTL 標簽 庫由標簽庫和 EL 表達式語言兩個部分組成。 EL 在 JSTL 1.0 規范中被引入,當時用來作為 Java 表達式來工作,而該表達式必須配合 JSTL 的標簽庫才能得到需要的結果。
    說明:在 JSTL 1.1 規范中, JSP2.0 容器已經能夠獨立的理解任何 EL 表達式。 EL 可以獨立出現在 JSP 頁面的任何角落。本文隨后的內容將以 JSTL 1.1 規范作為介紹的重點。
    一 JSTL EL表達式語言簡介
    EL 是從 JavaScript 腳本語言得到啟發的一種表達式語言,它借鑒了 JavaScript 多類型轉換無關性的特點。在使用 EL 從 scope 中得到參數時可以自動轉換類型,因此對于類型的限制更加寬松。 Web 服務器對于 request 請求參數通常會以 String 類型來發送,在得到時使用的 Java 語言腳本就應該是 request.getParameter(“XXX”) ,這樣的話,對于實際應用還必須進行強制類型轉換。而 EL 就將用戶從這種類型轉換的繁瑣工作脫離出來,允許用戶直接使用 EL 表達式取得的值,而不用關心它是什么類型。
    下面的示例就是一個 EL 表達式,見例 1 。
    例 1 :簡單 EL 表達式
    <%@ page contentType="text/html; charset=UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
     <body>
        ${sampleValue + 1} <br>
     </body>
    </html>
    這個示例將在 JSP 頁面顯示為“ 1 ”, EL 表達式必須以“ ${XXX} ”來表示,其中“ XXX ”部分就是具體表達式內容,“ ${} ”將這個表達式內容包含在其中作為 EL 表達式的定義。本示例可以在滿足 JSP2.0 規范的任何 Web 應用服務器中使用。
    二 EL表達式的默認變量
    一個 EL 表達式包含變量和操作符兩個內容。任何存在于 JSP 作用范圍的 JavaBean 都可以被轉化成 EL 表達式來使用,它所包含的默認變量如下:
    1 .默認變量 pageScope 、 requestScope 、 sessionScope 、 applicationScope
    這 4 個默認變量包含 Scope 作用范圍的參數集合,相當于被保存在 java.util.Map 中的某個參數。下面看簡單的示例 2 :
    例 2 :使用 sessionScope 變量的 EL 表達式
    <%request.getSession().setAttribute("sampleValue", new Integer(10));%>
    ${sessionScope.sampleValue}
    取得保存在 Session 中參數的 sessionScope 變量的 EL 表達式,“ . ”是 property 訪問操作符,在這里表示從 Session 中取得“鍵”為“ sampleValue ”的參數,并顯示出來。顯示結果為“ 10 ”。
    2 .默認變量 param 、 paramValues
    這兩個默認變量包含請求參數的集合, param 表明請求包含的參數為單一控件, paramValues 表明請求包含的參數為控件數組。下面看一個簡單示例 3 :
    例 3 :提交請求的頁面和接受的頁面
    <%@ 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>
    在這個頁面中定義了兩組控件,控件名為“ sampleValue ”的是一套控件數組,控件名為“ sampleSingleValue ”的是單一控件,通過遞交將請求參數傳送到 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>
    這是請求轉發到的頁面,通過 EL 表達式的 paramValues 變量得到控件數組中最后一個控件的遞交參數,通過 EL 表達式的 param 變量得到單一控件的遞交參數。控件數組參數的 EL 表達式使用“ [] ”來指定數組下標。本示例將顯示控件數組中最后一個控件的值“ 12 ”和單一控件的值“ SingleValue ”。
    3 .默認變量 header 、 headerValues
    這兩個默認變量包含請求參數頭部信息的集合, header 變量表示單一頭部信息, headerValues 則表示數組型的頭部信息。
    4 .默認變量 cookie
    包含所有請求的 cookie 集合,集合中的每個對象對應 javax.servlet.http.Cookie 。
    5 .默認變量 initParam
    包含所有應用程序初始化參數的集合。
    6 .默認變量 pageContext
    等價于 page 環境類 javax.servlet.jsp.PageContext 的實例,用來提供訪問不同的請求參數。
    11 個默認變量幾乎包含了 Web 應用的所有基本操作,若一個表達式不使用這些變量而直接使用參數名,那么就采用就近原則。該表達式將使用最近取得的參數值。
    三.EL表達式的操作符
    EL 表達式中還有許多操作符可以幫助完成各種所需的操作,之前的示例中“ . ”、“ [] ”就是其中的兩個,下面將用表 9.1 來展示所有操作符及它們各自的功能。
    表 9.1 EL 表達式的操作符

    操作符
       
    功能和作用
    .
       
    訪問一個 bean 屬性或者 Map entry
    []
       
    訪問一個數組或者鏈表元素
    ()
       
    對子表達式分組,用來改變賦值順序
    ? :
       
    條件語句,比如:條件 ?ifTrue:ifFalse
    如果條件為真,表達式值為前者,反之為后者
    +
       
    數學運算符,加操作
    -
       
    數學運算符,減操作或者對一個值取反
    *
       
    數學運算符,乘操作
    / 或 div
       
    數學運算符,除操作
    % 或 mod
       
    數學運算符,模操作 ( 取余 )
    == 或 eq
       
    邏輯運算符,判斷符號左右兩端是否相等,如果相等返回 true ,否則返回 false
    != 或 ne
       
    邏輯運算符,判斷符號左右兩端是否不相等,如果不相等返回 true ,否則返回 false
    < 或 lt
       
    邏輯運算符,判斷符號左邊是否小于右邊,如果小于返回 true ,否則返回 false
    > 或 gt
       
    邏輯運算符,判斷符號左邊是否大于右邊,如果大于返回 true ,否則返回 false
    <= 或 le
       
    邏輯運算符,判斷符號左邊是否小于或者等于右邊,如果小于或者等于返回 true ,否則返回 false
    >= 或 ge
       
    邏輯運算符,判斷符號左邊是否大于或者等于右邊,如果大于或者等于返回 true ,否則返回 false
    && 或 and
       
    邏輯運算符,與操作賦。如果左右兩邊同為 true 返回 true ,否則返回 false
    || 或 or
       
    邏輯運算符,或操作賦。如果左右兩邊有任何一邊為 true 返回 true ,否則返回 false
    ! 或 not
       
    邏輯運算符,非操作賦。如果對 true 取運算返回 false ,否則返回 true
    empty
       
    用來對一個空變量值進行判斷 : null 、一個空 String 、空數組、 空 Map 、沒有條目的 Collection 集合
    func(args)
       
    調用方法 , func 是方法名, args 是參數,可以沒有,或者有一個、多個參數 . 參數間用逗號隔開
    這些操作符都是極其有用的,下面通過幾個示例來演示它們的使用方法:
    例 4 :幾組操作符的示例
    ${pageScope.sampleValue + 12} <br>           // 顯示 12
    ${(pageScope.sampleValue + 12)/3} <br>     // 顯示 4.0
    ${(pageScope.sampleValue + 12) /3==4} <br>         // 顯示 true
    ${(pageScope.sampleValue + 12) /3>=5} <br>         // 顯示 false
    <input type="text" name="sample1" value="${pageScope.sampleValue + 10}"> // 顯示值為 10 的 Text 控件
    可以看到,對于這些示例,程序設計者完全無需管理它們的類型轉換,在表達式內部都已經處理了。有了 EL 表達式,在 JSP 頁面的編程變得更靈活,也更容易。

    posted on 2008-04-15 00:15 xyz 閱讀(429) 評論(0)  編輯  收藏 所屬分類: 網絡文摘

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    留言簿

    隨筆檔案(1)

    文章分類(44)

    文章檔案(46)

    收藏夾(1)

    Adobe

    AOP

    API

    appServer

    BI

    c

    • c-free
    • codeblocks
    • codelite
    • CodeLite IDE 是一個強大的開源,跨平臺的 C/C++整合開發環境. 支持包括 Windows、Linux 和 Mac 系統下運行
    • codelite官網
    • dev-c++
    • Dev-C++是一個C&C++開發工具,它是一款自由軟件,遵守GPL協議。
    • GCC
    • GCC 原名為 GNU C 語言編譯器(GNU C Compiler),因為它原本只能處理 C語言。GCC 很快地擴展,變得可處理 C++。之后也變得可處理 Fortran、Pascal、Objective-C、Java, 以及 Ada 與其他語言。

    Cache

    CMS

    DB

    eclipse

    FreeMarker

    hibernate

    html5

    ibatis

    java

    jquery

    js

    json

    Linux

    Log

    mail server

    mobile

    mysql

    oauth

    openID

    other

    PHP

    portal

    report

    Scheduler

    schema

    Security

    SOA

    spring

    struts

    UI原型設計

    w3c

    Wap

    webservice

    xml

    供應鏈管理

    博客鏈接

    好網站

    工作流

    開源網

    招聘

    插件下載

    操作系統

    構建可伸縮的系統

    構建工具

    測試

    • IETest
    • IE官網
    • OpenSTA
    • Siege
    • Siege是一個壓力測試和評測工具,設計用于WEB開發這評估應用在壓力下的承受能力

    游戲

    源碼托管

    經營

    資源

    金融/財務

    搜索

    •  

    最新評論

    主站蜘蛛池模板: 久久99热精品免费观看牛牛| 免费无码又爽又刺激高潮的视频 | 亚洲情a成黄在线观看| 国产免费阿v精品视频网址| 亚洲成a人片在线观| 免费永久看黄在线观看app| 国产午夜免费高清久久影院| 亚洲伊人久久大香线蕉结合| 亚洲情侣偷拍精品| 精品久久久久成人码免费动漫| 免费一级全黄少妇性色生活片| 亚洲综合日韩中文字幕v在线| 处破痛哭A√18成年片免费| 男女拍拍拍免费视频网站| 亚洲中字慕日产2021| 亚洲成aⅴ人片久青草影院| 无码av免费一区二区三区| 亚洲AV无码男人的天堂| 亚洲综合成人网在线观看| 亚洲国产成人久久笫一页| xx视频在线永久免费观看| 视频免费1区二区三区| 中文文字幕文字幕亚洲色| 亚洲永久精品ww47| 国产免费怕怕免费视频观看| 日韩在线永久免费播放| 日韩在线观看视频免费| 亚洲色偷偷色噜噜狠狠99| 久久亚洲日韩精品一区二区三区| 亚洲国产精品无码久久青草 | 亚洲乱码一二三四区乱码| 亚洲精品无码午夜福利中文字幕| 女人18毛片a级毛片免费视频| 三年片在线观看免费观看大全动漫 | 成人免费无码精品国产电影| 91福利免费视频| 国产高潮流白浆喷水免费A片 | 91av视频免费在线观看| 亚洲精品视频免费| 亚洲狠狠婷婷综合久久蜜芽| 亚洲精品偷拍无码不卡av|