1.EL 語法格式:所有EL都是以${爲起始、以}爲結尾的。
El
${sessionScope.user.sex}
JSP
User user =(User)session.getAttribute("user");String sex =user.getSex( );
解釋: 從Session的範圍中,取得用戶的性別。
2.點與中括號運算符( [ ] or . )
${sessionScope.user.sex}等於${sessionScope.user["sex"]}OR${sessionScope.user['sex']} 單引號與雙引號一樣
混淆:當要存取的屬性名稱中包含一些特殊字符,如. 或 – 等並非字母或數字的符號,就一定要使用 [ ],
${user["My-Name"] }
例如:${user.My-Name } 這是錯誤寫法
EL變量 page<Request<Session<Application
EL 存取變量數據的方法很簡單,例如:${username}。它的意思是取出某一範圍中名稱爲username的變量。
EL表達式會優化,頁面上顯示空白,而不是打印輸出NULL。
屬性範圍(jstl名稱) | EL中的名稱 | 範例 | 說明 |
Page | PageScope | ${pageScope.username} | 取出Page範圍的username變量 |
Request | RequestScope | ${requestScope.username} | 取出Request範圍的username變量 |
Session | SessionScope | ${sessionScope.username} | 取出Session範圍的username變量 |
Application | ApplicationScope | ${applicationScope.username} | 取出Application範圍的username變量 |
El隱式對象
隱含對象 |
類型 |
說明 |
PageContext |
javax.servlet.ServletContext |
表示此JSP的PageContext |
PageScope |
java.util.Map |
取得Page範圍的屬性名稱所對應的值 |
RequestScope |
java.util.Map |
取得Request範圍的屬性名稱所對應的值 |
sessionScope |
java.util.Map |
取得Session範圍的屬性名稱所對應的值 |
applicationScope |
java.util.Map |
取得Application範圍的屬性名稱所對應的值 |
param |
java.util.Map |
如同ServletRequest.getParameter(String name)。回傳String類型的值 |
paramValues |
java.util.Map |
如同ServletRequest.getParameterValues(String name)。回傳String[]類型的值 |
header |
java.util.Map |
如同ServletRequest.getHeader(String name)。回傳String類型的值 |
headerValues |
java.util.Map |
如同ServletRequest.getHeaders(String name)。回傳String[]類型的值 |
cookie |
java.util.Map |
如同HttpServletRequest.getCookies() |
initParam |
java.util.Map |
如同ServletContext.getInitParameter(String name)。回傳String類型的值 |
EL算術運算 關係運算 邏輯運算 與java 相同
關係運算
關係運算符 |
說明 |
範例 |
結果 |
== 或 eq |
等於 |
${5==5}或${5eq5} |
true |
!= 或 ne |
不等於 |
${5!=5}或${5ne5} |
false |
< 或 lt |
小於 |
${3<5}或${3lt5} |
true |
> 或 gt |
大於 |
${3>5}或{3gt5} |
false |
<= 或 le |
小於等於 |
${3<=5}或${3le5} |
true |
>= 或 ge |
大於等於 |
5}或${3ge5} |
false |
邏輯運算符
邏輯運算符 |
範例 |
結果 |
&&或and |
交集${A && B}或${A and B} |
true/false |
||或or |
並集${A || B}或${A or B} |
true/false |
!或not |
非${! A }或${not A} |
true/false |
Empty 運算符Empty 運算符主要用來判斷值是否爲空(NULL,空字符串,空集合)