為什么80%的碼農都做不了架構師?>>>
##1.EL全名為Expression Language
out.print(str) <%=str%> ${str}
例子: Hi! <%=username%> 和 Hi! ${username}是一樣的
只要是支持servlet2.4/jsp2.0的Container就都可以在jsp網頁中直接使用el
EL如今已經是一項成熟,標準的技術
##2.EL語法:
${sessionScope.user.sex}
意思:從session的范圍中,取得用戶的性別
所有EL都是以${為起始、以}為結尾的。
##3.EL提供.和[]兩種運算符來存取數據。
${sessionScope.user.sex} = ${sessionScope.user["sex"]}
.和[]可以同時使用:%{sessionScope.shoppingCart[0].price}
##4.EL隱含對象
jsp中有9個隱含對象,EL有11個隱含對象
常用的El隱含對象:
-
pageScope 取得Page范圍的屬性名稱所對應的值
-
requestScope 取得request范圍的屬性名稱所對應的值
-
sessionScope 取得session范圍的屬性名稱所對應的值
-
applicationScope 取得application范圍的屬性名稱所對應的值
-
param 如同ServletRequest.getParameter(String name)、回傳String類型的值
-
cookie 如同HttpServletRequest.getCookies()
-
initParam 如同ServletContext.getInitParameter(String name)
不常用的EL對象:
- pageContext 表示此jsp的PageContext
- paramValue 如同ServletRequest.getParameterValues(String name),回傳String[]類型的值
##算術運算符
- + 加 ${ 17 + 5 } 22
- - 減 ${ 17 - 5 } 12
- * 乘 ${ 17 * 5 } 85
- /或div 除 ${ 17 / 5 } 3
- %或mod 余數 ${ 17 % 5 } 2
##關系運算符
- ==或eq 等于 ${ 5 == 5 } true
- !=或ne 不等于 ${ 5 != 5 } false
- <或lt 小于 ${ 3 < 5 } true
- &gh;或gt 大于 ${ 3 > 5 } false
- <=或le 小于等于 ${ 3 <= 5 } true
- >=或ge 大于等于 ${ 3 >= 5 } false
###注意:
在使用EL關系運算符時,不能寫成: ${param.p1} == ${param.p2} 或者${%{param.p1} == ${param.p2} } 而應寫成: ${param.p1 == param.p2}
##邏輯運算符
&&或and 交集 ${ A && B} true/false ||或or 并集 ${ A || B} true/false !或not 非 ${ !A } true/false
##注意:EL可以和常量混用,但是要注意表達式是不行的