EL表达式
一个EL表达式包含变量和操作符。任何存储在某个JSP作用范围(如:page、 request、session、application)的bean能被作为一个EL变量来使用。另外,EL支持以下预定义的变量:
变量名称
|
说明
|
pageScope
|
一个包含所有page scope范围的变量集合 (a java.util.Map)
|
requestScope
|
一个包含所有request scope范围的变量集合 (a java.util.Map)
|
sessionScope
|
一个包含所有session scope范围的变量集合 (a java.util.Map)
|
applicationScope
|
一个包含所有application scope范围的变量集合 (a java.util.Map)
|
param
|
一个包含所有请求参数的集合 (a java.util.Map),通过每个参数对应一个String值的方式赋值
|
paramValues
|
一个包含所有请求参数的集合 (a java.util.Map),通过每个参数对应一个String数组的方式赋值
|
header
|
一个包含所有请求的头信息的集合, (a java.util.Map) ,通过每个头信息对应一个String值的方式赋值
|
headerValues
|
一个包含所有请求的头信息的集合 (a java.util.Map) ,通过每个头信息的值都保存在一个String数组的方式赋值
|
cookie
|
一个包含所有请求的 cookie集合 (a java.util.Map), 通过每一个cookie(javax.servlet.http.Cookie)对应一个cookie值的方式赋值
|
initParam
|
一个包含所有应用程序初始化参数的集合(a java.util.Map) ,通过每个参数分别对应一个String值的方式赋值
|
pageContext
|
一个javax.servlet.jsp.PageContext类的实例, 用来提供访问不同的请求数据
|
操作符描述了你对变量所期望的操作。如果你之前曾经使用过任何编程语言的话,在EL表达式中所使用的操作符对你来说可能看起来很熟悉。因为它们和那些在大多数语言中所支持的操作符一样。
Operator
|
Description
|
.
|
访问一个bean属性或者 Map entry
|
[]
|
访问一个数组或者链表元素
|
()
|
对子表达式分组,用来改变赋值顺序
|
? :
|
条件语句,比如: 条件 ? ifTrue : ifFalse.如果条件为真,表达式值为前者,反之为后者
|
+
|
数学运算符,加操作
|
-
|
数学运算符,减操作或者对一个值取反
|
*
|
数学运算符,乘操作
|
/ or div
|
数学运算符,除操作
|
% or mod
|
数学运算符,模操作(取余)
|
== or eq
|
逻辑运算符,判断符号左右两端是否相等,如果相等返回true,否则返回false
|
!= or ne
|
逻辑运算符,判断符号左右两端是否不相等,如果不相等返回true,否则返回false
|
< or lt
|
逻辑运算符,判断符号左边是否小于右边,如果小于返回true,否则返回false
|
> or gt
|
逻辑运算符,判断符号左边是否大于右边,如果大于返回true,否则返回false
|
<= or le
|
逻辑运算符,判断符号左边是否小于或者等于右边,如果小于或者等于返回true,否则返回false
|
>= or ge
|
逻辑运算符,判断符号左边是否大于或者等于右边,如果大于或者等于返回true,否则返回false
|
&& or and
|
逻辑运算符,与操作赋。如果左右两边同为true返回true,否则返回false
|
|| or or
|
逻辑运算符,或操作赋。如果左右两边有任何一边为true返回true,否则返回false
|
! or not
|
逻辑运算符,非操作赋。如果对true取运算返回false,否则返回true
|
empty
|
用来对一个空变量值进行判断: null、一个空String、空数组、 空Map、没有条目的Collection集合
|
func(args)
|
调用方法, func是方法名,args是参数,可以没有,或者有一个、多个参数.参数间用逗号隔开
|
一个EL表达式可以包含:数字、文本(在单引号或者双引号之间)、布尔值、null值。
因为一个EL表达式可以出现在静态文本出现的地方,因此你必须告诉JSP容器它应该被当作一个EL表达式来处理。你可以通过使用定界符来做到这一点。一个EL表达式总是以”${ }”来标记(一个“$”符号和一个左花括号,右花括号)。