EL表達式

   E L(Expression Language) 目的:爲了使JSP寫起來更加簡單。表達式語言的靈感來自於 ECMAScript 和 XPath 表達式語言,它提供了在 JSP 中簡化表達式的方法。它是一種簡單的語言,基於可用的命名空間(PageContext 屬性)、嵌套屬性和對集合、操作符(算術型、關係型和邏輯型)的訪問符、映射到 Java 類中靜態方法的可擴展函數以及一組隱式對象。
   EL 提供了在 JSP腳本編制元素範圍外使用運行時表達式的功能。腳本編制元素是指頁面中能夠用於在 JSP 文件中嵌入 Java 代碼的元素。它們通常用於對象操作以及執行那些影響所生成內容的計算。JSP 2.0 將 EL 表達式添加爲一種腳本編制元素。  

   語法結構

${expression}


   [ ]與.運算符

EL 提供“.“和“[ ]“兩種運算符來存取數據。
當要存取的屬性名稱中包含一些特殊字符,如.或?等並非字母或數字的符號,就一定要使用“[ ]“。例如:
${ user. My-Name}應當改爲${user["My-Name"]}
如果要動態取值時,就可以用“[ ]“來做,而“.“無法做到動態取值。例如:

${sessionScope.user[data]}中data 是一個變量


變量
EL存取變量數據的方法很簡單,例如:${username}。它的意思是取出某一範圍中名稱爲username的變量。
因爲我們並沒有指定哪一個範圍的username,所以它會依序從Page、Request、Session、Application範圍查找。
假如途中找到username,就直接回傳,不再繼續找下去,但是假如全部的範圍都沒有找到時,就回傳null。
屬性範圍在EL中的名稱
Page PageScope
Request RequestScope
Session SessionScope

Application ApplicationScope


隱式對象
JSP 表達式語言定義了一組隱式對象,其中許多對象在 JSP scriplet 和表達式中可用:

特別強調

1、注意當表達式根據名稱引用這些對象之一時,回的是相應的對象而不是相應的屬性。例如:即使現有的 pageContext 屬性包含某些其他值,${pageContext} 也返回 PageContext 對象。

2、 注意 <%@ page isELIgnored="true" %> 表示是否禁用EL語言,TRUE表示禁止.FALSE表示不禁止.JSP2.0中默認的啓用EL語言。

3、< %=request. getParameter(“username”)% > 等價於 ${ param. username }

  <%=user.getAddr( ) %> 等價於 ${user.addr}。


  <%=request.getAttribute(“userlist”) %> 等價於$ { requestScope.userlist }



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