EL(Expression Language)表達式語言數組
EL的基本語法是以${開始,以}結束cookie
爲了可以方便地輸出數據,EL提供了11個內置對象,其中session
- 2個內置對象爲了方便輸出請求參數
- param用來輸出請求參數的值,格式爲${param.請求參數名字}
- paramValues:用來獲取一對多的參數值,返回一個數組
- 4個內置對象爲了方便輸出各個範圍的屬性
-
- pageScope:頁面範圍,即pageContext範圍
- requestScope:請求範圍
- sessionScope:會話範圍
- applicationScope:上下文範圍
-
- header:輸出某一個請求頭的值。
- headerValues:若是某個請求頭的值有多個,則使用headerValues返回一個數組
- 2個其餘內置對象:cookie、initParam
-
- cookie:用來獲取cookie的值
- initParam:用來輸出上下文參數的值
- 1個特殊的內置對象pageContext
- EL中的pageContext對象能夠調用PageContext類中全部符合規範的getXxx方法
EL運算符app
-
- ${19+2} <br>
- ${19-2} <br>
- ${19*2} <br>
- ${19/2} <br>
- ${19%2} <br>
-
- = = 或eq表示等於
- != 或ne表示不等於
- < 或lt表示小於
- > 或gt表示大於
- <= 或le表示小於等於
- >= 或ge表示大於等於
-
- &&或and表示交集,兩個值都是true才返回true。
- ||或or表示並集,兩個值只要有一個是true,即返回true。
- !或not表示非
-
- empty運算符:判斷值是否爲null,若是是null,返回true,不然返回false。
- 關係運算符:${A?B:C}若是A爲true,則執行B,若是A爲false,則執行C。
- ()運算符:經過()可改變優先級。
EL中提供.和[]兩種操做符來得到數據
以下面的兩行代碼等同:spa
${requestScope.cust2.custname}<br>
${requestScope["cust2"]["custname"]}
在某些狀況下,卻只能使用[]。
數組或集合的索引,如:code
${paramValues.hobbies[0]}<br>
${requestScope.list[1].custname}<br>
屬性值中包括-或者.等非字母或數字的字符。
不合法的EL:${param.user_name}
合法的EL:${param[「user_name」]}
值得注意的是,常量能夠使用「」引用,也能夠用單引號‘’引用。
屬性值不是常量,而是變量。如paramName是變量,其具體值多是name,多是date等。
不合法的EL:${param.paramName}
合法的EL:${param[paramName]}對象
EL除了能夠方便的獲取數據外,還能夠方便地進行數據類型轉換
在EL中,對null值不顯示,也不會拋出異常
在表達式中,對null值要麼直接顯示,要麼拋出異常blog