標籤: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)