EL表达式语法:以${开头,以}结束,中间为合法的表达式,具体语法格式如下:
${expression}
参数说明:
Expression:指定要输出的内容,可以是字符串,也可以是由EL运算符组成的表达式。
通过EL提供的“[]”和“,”运算符可以访问数据。通常情况下,“[]”和“.”运算是等价的,可以相互代替。
范例:
访问JavaBean中的userInfo的id属性,可以写成以下两种形式:
${userInfo.id}
${userInfo[id]}
但是也不是所有的情况下都可以相互替代,例如,当对象的属性名中包含一些特殊的符号(-或.)时,就只能使用“[]”运算符来访问对象的属性。例如:${userInfo[user-id]}是正确的,而${userInfo.user-name}则是错误的。另外,EL的“[]”运算符还有一个用途,就是用来获取数组或List集合中的数据。
数组元素的获取:
应用“[]”运算符可以获取数组的指定元素,但是“.”不能
范例:
获取request范围中的数组arrBook中的第一个元素,可以使用下面的EL表达式:
${arrBook[0]}
在EL中判断对象是否为空
在EL中,判断对象是否为空,可以通过empty运算符实现,该运算符是一个前缀运算符,即empty运算符位于操作数的前方,用来确定一个对象是否为null或空。Empty运算符的格式如下:
${empty.expression}
EL中的逻辑关系运算
关系运算符
在EL中,提供了6中关系运算符。关系运算符的使用格式如下:
运算符 |
功能 |
示例 |
==或eq |
等于 |
${10==10}/${10 eq 10} |
!=或ne |
不等于 |
${10!=10}/${“A” ne “A”} |
<或lt |
小于 |
${7<6}/${“A” lt “B”} |
>或gt |
大于 |
${7>6}/${“A” gt “B”} |
<=或le |
小于等于 |
${“A” <= “A”} |
>=或ge |
大于等于 |
${7>=6}/${7 ge 6} |
EL表达式的11个内置对象
- pageScope
- requestScope
- sessionScope
- applicationScope
- param;
- paramValues;
- header;
- headerValues;
- initParam;
- cookie;
- pageContext;
- param:该内置对象的类型是Map
- paramValues:该内置对象的类型是Map
注意,在使用EL获取参数时,如果参数不存在,返回的是空字符串,而不是null。这一点与使用request.getParameter()方法是不同的。