JSP運算式語言(EL)

來源:互聯網
上載者:User

標籤:ignore   exp   允許   height   並且   鏈表   浮點型   less   javabean   

  JSP運算式語言(EL)使得訪問儲存在JavaBean中的資料變得非常簡單。JSP  EL既可以用來建立算術運算式也可以用來建立邏輯運算式。在JSP  EL運算式內可以使用整數型、浮點型、字串、常量true、false,還有null。一般的在JSP標籤中指定一個屬性值時,需要使用一大行代碼:

    <jsp:setProperty  name="box"  property="perimeter"  value="100"  />

  JSP  EL 允許指定一個運算式來表示一個屬性值:${expr}   ,其中,expr指的是運算式。在JSP EL中通用的操作符是 . 和 {}。這兩個操作符允許通過內嵌的JSP對象訪問各種各樣的JavaBean屬性。例如上面的<jsp:setProperty>標籤可以使用運算式語言寫成下面形式:

    <jsp:setProperty   name="box"  property="permeter"  value="${box.width*2+box.height*2}"  />

   當JSP編譯器在屬性中見到"${}"格式後,它湖產生代碼來計算這個運算式,並且產生一個替代品來代替運算式的值。

    <jsp:text>    Box  Perimeter  is:${box.width*2+box.height*}    </jsp:text>

   在EL運算式中可以使用圓括弧來組織運算式,想要停用對EL運算式的評估,需要使用page指令的isELIgnored的屬性值設定為true :

    <%@  page  isELIgnored="true|false" %>   //預設是false,即EL運算式有效

  將isELIgnored屬性值設定為true,這樣在這個JSP頁面EL運算式就會失效。

EL中的基礎操作符

  EL運算式支援大部分Java所提供的算術和邏輯操作符:

操作符 描述
. 訪問對象的一個屬性或者一個映射條目
[] 訪問對象的一個屬性或者一個數組、鏈表的元素
() 組織一個子運算式以改變優先順序
+
-
*
/  or  div
%   or  mod 取餘
==  or  eq 測試是否相等
!=  or  ne 測試是否不等
<  or  lt 測試是否小於(less  than)
>  or  gt 測試是否大於(greater  than)
<=   or  le 測試是否小於等於
>=  or  ge 測試是否大於等於
&&  or  and 測試邏輯與
||   or  or 測試邏輯或
!   or   not 測試邏輯非
empty 測試是否空值

JSP  EL中的函數

  JSP  EL允許在運算式中使用函數。這些函數必須被定義在自訂標籤庫中。

    ${fn:length("Get  my  length")}

   fn:length函數在JSTL庫中定義,上面的文法可以擷取一個字串的長度,要使用任何標籤庫的函數,都需要將這些庫安裝在伺服器中,然後使用<taglib>標籤在JSP 檔案中引用這些庫。

JSP EL隱含對象

  JSP EL支援下表中的隱含對象:

隱含對象 描述
pageScope page範圍
requestScope request範圍
sessionScope session範圍
applicationScope application範圍
param request對象的參數,字串
paramValues request對象的參數,字串集合
header HTTP資訊頭,字串
headerValues HTTP資訊頭,字串集合
initParam 上下文初始化參數
cookie Cookie值
pageContext 當前頁面的pageContext

pageContext對象

  pageContext對象是JSP中pageContext對象的引用。通過pageContext對象可以訪問request對象。例如,訪問request對象傳入的查詢字串:

        ${pageContext.request.queryString}    

 scope對象

  pageScope,requestScope,sessionScope,applicationScope變數用來訪問儲存在各個範圍層次的變數。如需要訪問session範圍域內的test變數,可以這樣用${sessionScope.tset}。

param和paramValues對象

  param和paramValues對象用來訪問參數值,用來替換request.getParameter方法和request.getParameterValues方法。例如,訪問一個名為order的參數,可以用EL運算式:${param.order},或者${param[order]}。param對象返回單一的字串,而paramValues對象則返回一個字串數組。 

 

JSP運算式語言(EL)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.