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

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

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

    空間站

    北極心空

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks
    關鍵字:   jsp    

    the JavaServer Pages Standard Tag Library (JSTL)
    JSP Standard Tag Library (JSTL)
    EL(expression language)表達式

    EL 表達式的格式是這樣的:用美元符號($)定界,內容包括在花括號({})中。
    清單 1. 說明 EL 表達式定界符的 JSTL 操作
    <c:out value="${user.firstName}"/>;
    此外,您可以將多個表達式與靜態文本組合在一起以通過字符串并置來構造動態屬性值,如清單 4 所示。單獨的表達式由標識符、存取器、文字和運算符組成。標識符用來引用存儲在數據中心中的數據對象。EL 有 11 個保留標識符,對應于 11 個 EL 隱式對象。假定所有其它標識符都引用限制了作用域的變量。存取器用來檢索對象的特性或集合的元素。文字表示固定的值 — 數字、字符、字符串、布爾型或空值。運算符允許對數據和文字進行組合以及比較。
    清單 2. 組合靜態文本和多個 EL 表達式以指定動態屬性值
    <c:out value="Hello ${user.firstName} ${user.lastName}"/>;
    隱式對象
    表 1 中列出了 11 個 EL 隱式對象的標識符。不要將這些對象與 JSP 隱式對象(一共只有九個)混淆,其中只有一個對象是它們所共有的。

    表 1. EL 隱式對象
    類別 標識符 描述
    JSP pageContext PageContext 實例對應于當前頁面的處理
    作用域 pageScope 與頁面作用域屬性的名稱和值相關聯的 Map 類
    requestScope 與請求作用域屬性的名稱和值相關聯的 Map 類
    sessionScope 與會話作用域屬性的名稱和值相關聯的 Map 類
    applicationScope 與應用程序作用域屬性的名稱和值相關聯的 Map 類
    請求參數 param 按名稱存儲請求參數的主要值的 Map 類
    paramValues 將請求參數的所有值作為 String 數組存儲的 Map 類
    請求頭 header 按名稱存儲請求頭主要值的 Map 類
    headerValues 將請求頭的所有值作為 String 數組存儲的 Map 類
    Cookie cookie 按名稱存儲請求附帶的 cookie 的 Map 類
    初始化參數 initParam 按名稱存儲 Web 應用程序上下文初始化參數的 Map 類

    盡管 JSP 和 EL 隱式對象中只有一個公共對象(pageContext),但通過 EL 也可以訪問其它 JSP 隱式對象。原因是 pageContext 擁有訪問所有其它八個 JSP 隱式對象的特性。實際上,這是將它包括在 EL 隱式對象中的主要理由。

    其余所有 EL 隱式對象都是映射,可以用來查找對應于名稱的對象。前四個映射表示先前討論的各種屬性作用域。可以用它們來查找特定作用域中的標識符,而不用依賴于 EL 在缺省情況下使用的順序查找過程。

    接下來的四個映射用來獲取請求參數和請求頭的值。因為 HTTP 協議允許請求參數和請求頭具有多個值,所以它們各有一對映射。每對中的第一個映射返回請求參數或頭的主要值,通常是恰巧在實際請求中首先指定的那個值。每對中第二個映射允許檢索參數或頭的所有值。這些映射中的鍵是參數或頭的名稱,但這些值是 String 對象的數組,其中的每個元素都是單一參數值或頭值。

    cookie 隱式對象提供了對由請求設置的 cookie 名稱的訪問。這個對象將所有與請求相關聯的 cookie 名稱映射到表示那些 cookie 特性的 Cookie 對象。

    最后一個 EL 隱式對象 initParam 是一個映射,它儲存與 Web 應用程序相關聯的所有上下文的初始化參數的名稱和值。初始化參數是通過 web.xml 部署描述符文件指定的,該文件位于應用程序的 WEB-INF 目錄中。
    最終,EL 還包括了幾個用來操作和比較 EL 表達式所訪問數據的運算符。表 2 中匯總了這些運算符。

    表 2. EL 運算符

    類別 運算符
    算術運算符 +、-、*、/(或 div)和 %(或 mod)
    關系運算符 ==(或 eq)、!=(或 ne)、<</code>;(或 lt)、>;(或 gt)、<=(或 le)和

    >;=(或 ge)
    邏輯運算符 &&(或 and)、||(或 or)和 !(或 not)
    驗證運算符 empty
    清單 3. 利用算術運算符的 EL 表達式
    ${item.price * (1 + taxRate[user.address.zipcode])}
    清單 4. 利用關系和邏輯運算符的 EL 表達式
    ${(x >;= min) && (x <= max)}
    表 3. EL 運算符優先級(自頂到底,從左到右)

    [], .
    ()
    unary -、not、!、empty
    *、/、div、%、mod
    +、binary -
    () <</code>;、>;、<=、>;=、lt、gt、le、ge
    ==、!=、eq、ne
    &&、and
    ||、or
    清單 5. 用于 JSTL core 庫 EL 版本的 taglib 偽指令
    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>;
    ?

    這個問題一般是由于你使用的jstl版本造成的。
    你的頁面應該會包含如下代碼:
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
    這是最新版的jstl 1.1路徑,而如果你使用的是舊版1.0的則需要把路徑中的jsp去掉,如下:
    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
    <%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
    <%@ taglib uri="http://java.sun.com/jstl/sql" prefix="sql" %>

    關鍵字:   Tag標簽    
    EL腳本語言的配置和支持:
    對于一個單個JSP頁面,你可以使用定義page指令來設置jsp頁面是否支持EL。默認是支持EL(如果要頁面不支持EL,請設置為isELIgnored=true;
    1. <%@ page isELIgnored="true|false"%>

    1. 對于整個JSP應用程序,要修改WEB.XML配置(tomcat5.0.16默認是支持EL的);
    2. 〈jsp-property-group>
      〈description> For config the ICW sample application 〈/description>
      〈display-name>JSPConfiguration 〈/display-name>
      〈url-pattern>/jsp/datareset.jsp 〈/url-pattern>
      〈el-ignored>true< / el-ignored> 〈 / el-ignored>
      〈page-encoding>ISO-8859-1〈/page-encoding>
      〈scripting-invalid>true〈/scripting-invalid>
      〈include-prelude>/jsp/prelude.jspf〈/include-prelude>
      〈include-coda>/jsp/coda.jspf〈/include-coda>
      〈/jsp-property-group>

    1. 算術運算符演示:
      以下是EL運算符列表,其中empty可以檢查某個值是否為空
    1. 運算符
    說明 運算符 說明

    +

    > 或 gt 大于

    -

    <= 或 le 小于等于

    *

    >= 或 ge 大于等于

    / 或 div

    && 或 and 邏輯與

    % 或 mod

    模(求余)

    || 或 or 邏輯或

    == 或 =

    等于

    ! 或 not 邏輯非

    !=

    不等于

    empty 檢查是否為空值

    < 或 lt

    小于

    a ? b : c 條件運算符
    1. EL表達式使用簡單,在網頁中"${}"表示是EL表達式。${1+1} 顯示為 2
    1. EL算術表達式
    運算結果 EL 關系運算表達式 運算結果
    ${1} 1 ${1 < 2} true
    ${1 + 2} 3 ${1 lt 2} true
    ${1.2 + 2.3} 3.5 ${1 > (4/2)} false
    ${-4 - 2} -6 ${4.0 >= 3} true
    ${21 * 2} 42 ${4.0 ge 3} true
    ${10%4} 2 ${100.0 eq 100} true
    ${10 mod 4} 2 ${(10*10) != 100} false
    ${(1==2) ? 3 : 4} 4 ${(10*10) ne 100} false

     

    1. 隱含對象數據演示:
    2. EL 表達式定義了11個隱含對象,使用這11個對象可以很方便的讀取到session,cookie,HttpHeader,用戶提交表單(param)等
    1. 隱含對象

    內容

    applicationScope

    應用程序范圍內的scoped變量組成的集合

    cookie

    所有cookie組成的集合

    header

    HTTP請求頭部,字符串

    headerValues

    HTTP請求頭部,字符串集合

    initParam

    全部應用程序參數名組成的集合

    pageContext

    當前頁面的javax.servlet.jsp.PageContext對象

    pageScope

    頁面范圍內所有對象的集合

    param

    所有請求參數字符串組成的集合

    paramValues

    所有作為字符串集合的請求參數

    requestScope

    所有請求范圍的對象的集合

    sessionScope

    所有會話范圍的對象的集合

    1. 下面是獲取HTTP訪問頭部數據和用戶提交數據的示例
    1. EL表達式
    運算結果
    ${header["host"]}
    這里得到HTTP連接頭部的host值
    ${header["accept"]} 這里獲得HTTP頭部的accept值
    ${header["user-agent"]} 這里獲得HTTP頭部的user-agent值
    以下可以讀取用戶提交的信息,假設用戶提交信息為 ?name=myname&alies=now.net.cn(這里有兩種訪問方式,一種是使用[]來進行訪問,另外一種是使用.來進行訪問,兩種訪問效果是一樣的。)
    ${param["name"] } myname
    ${param.name} myname
    ${param["alies"] } now.net.cn
    ${param.alies} now.net.cn
  • eg: ${empty(requestScope.backpath)?'admin_TcAction.do?method=findFinish':requestScope.backpath}
    posted on 2008-08-06 12:40 蘆葦 閱讀(6795) 評論(1)  編輯  收藏 所屬分類: 其他HTML & Script

    Feedback

    # re: EL表達式的應用 2013-04-21 15:45 cf2huihui
    不錯,讓我重新了解了以前的知識  回復  更多評論
      

    主站蜘蛛池模板: 永久免费毛片手机版在线看| 香蕉97超级碰碰碰免费公| 啊v在线免费观看| 亚洲熟女综合色一区二区三区| 99久久免费国产香蕉麻豆| 亚洲天堂一区二区三区四区| 国产精品69白浆在线观看免费 | 免费人成视频在线观看免费| 四虎影在线永久免费四虎地址8848aa| 亚洲av无码一区二区三区天堂| 国产成人免费爽爽爽视频| 亚洲精品无码av片| 亚洲成a人片在线观看老师| 四虎影视久久久免费观看| 国内精品久久久久久久亚洲| 99re6在线视频精品免费| 亚洲国产精品自在在线观看| 国产人成免费视频网站| 亚洲色偷偷综合亚洲AV伊人蜜桃 | 国产又大又粗又长免费视频| 亚洲国产成人无码av在线播放| 成年丰满熟妇午夜免费视频| 久久精品国产亚洲av瑜伽| 国产精品亚洲综合一区| 三年片在线观看免费观看大全动漫| 亚洲码在线中文在线观看| 免费人成在线视频| 一区二区三区免费电影| 亚洲AV永久无码区成人网站 | 最新国产AV无码专区亚洲| 免费无遮挡无码永久视频| 国内精品久久久久影院亚洲| 亚洲Av无码乱码在线观看性色| 在线观看免费播放av片| 33333在线亚洲| 久久夜色精品国产亚洲av| 最近中文字幕大全免费视频| 蜜桃传媒一区二区亚洲AV | 亚洲精品综合一二三区在线| 在线a人片天堂免费观看高清| 精品乱子伦一区二区三区高清免费播放|