首页 > 代码库 > el表达式

el表达式

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<String,String>,可以用来获取值为单值的请求参数,其中key指的是请求参数的名称,value指的是请求参数的值,使用param获取请求参数与request.getParameter()方法一样。
  • paramValues:该内置对象的类型是Map<String,String[]>,可以用来获取值为多值的请求参数,其中key是参数名,value是多个参数值组成的字符串数组。
注意,在使用EL获取参数时,如果参数不存在,返回的是空字符串,而不是null。这一点与使用request.getParameter()方法是不同的。

el表达式