EL 全名为Expression Language
EL都是以${为起始、以}为结尾的;
.与 [ ] 运算符
EL 提供 . 和 [ ] 两种运算符来导航数据。下列两者所代表的意思是一样的:
${sessionScope.user.sex}等于${sessionScope.user["sex"]}
. 和 [ ] 也可以同时混合使用,如下:
${sessionScope.shoppingCart[0].price}
回传结果为shoppingCart中第一项物品的价格。
不过,以下两种情况,两者会有差异:
(1) 当要存取的属性名称中包含一些特殊字符,如. 或 – 等并非字母或数字的符号,就一定要使用 [ ],例如:${user.My-Name }
上述是不正确的方式,应当改为:${user["My-Name"]}
(2) 我们来考虑下列情况:
${sessionScope.user[data]}
此时,data 是一个变量,假若data的值为"sex"时,那上述的例子等于${sessionScope.user.sex};
假若data 的值为"name"时,它就等于${sessionScope.user.name}。因此,如果要动态取值时,就可以用上述的方法来做,但. 无法做到动态取值。
EL关系运算符
|
关系运算符 |
说明 |
范例 |
结果 |
|
== 或 eq |
等于 |
${5==5}或${5eq5} |
true |
|
!= 或 ne |
不等于 |
${5!=5}或${5ne5} |
false |
|
< 或 lt |
小于 |
${3<5}或${3lt5} |
true |
|
> 或 gt |
大于 |
${3>5}或{3gt5} |
false |
|
<= 或 le |
小于等于 |
${3<=5}或${3le5} |
true |
|
>= 或 ge |
大于等于 |
5}或${3ge5} |
false |
表达式语言不仅可在数字与数字之间比较,还可在字符与字符之间比较,字符串的比较是根据其对应UNICODE值来比较大小的。
注意:在使用EL 关系运算符时,不能够写成:
${param.password1} = = ${param.password2}
或者
${ ${param.password1 } = = ${ param.password2 } }
而应写成
${ param.password1 = = param.password2 }
EL逻辑运算符
|
逻辑运算符 |
范例 |
结果 |
|
&&或and |
交集${A && B}或${A and B} |
true/false |
|
||或or |
并集${A || B}或${A or B} |
true/false |
|
!或not |
非${! A }或${not A} |
true/false |
Empty 运算符
Empty 运算符主要用来判断值是否为空(NULL,空字符串,空集合)。
条件运算符
${ A ? B : C}
本文深入解析EL表达式语言的核心概念,包括属性访问方式(.与[]运算符)与关系运算符(==, !=, <, >, <=, >=)。详细解释了如何在数据集中动态访问属性,并提供了关系运算符在比较数字和字符串时的应用实例。此外,还介绍了EL的逻辑运算符、Empty运算符和条件运算符的基本用法。
762

被折叠的 条评论
为什么被折叠?



