ITEEDU

JSP/Servlet: EL 运算子

使用EL,您可以直接实行一些算术运算、逻辑运算与关系运算,其使用就如同在一般常见的程序语言中之运算,您也可 以在安装好Tomcat之后,连接上http://localhost:8080/jsp-examples/找到一些EL运算的例子。

算术运算子有:加法 (+), 减法 (-), 乘法 (*), 除法 (/ or div) 与余除 (% or mod) 。下面是Tomcat中算术运算的一些例子:

表达式

结果

${1}

1

${1 + 2}

3

${1.2 + 2.3}

3.5

${1.2E4 + 1.4}

12001.4

${-4 - 2}

-6

${21 * 2}

42

${3/4}

0.75

${3 div 4}

0.75,除法

${3/0}

Infinity

${10%4}

2

${10 mod 4}

2,也是余除

${(1==2) ? 3 : 4} 4

如同在Java语法一样 ( expression ? result1 : result2)是个三元运算,expression为true显示result1,false显示result2。

逻辑运算有:and、or、not。一些例子为:

表达式

结果

${true and false}

false

${true or false}

true

${not true}

false


关系运算有:小于Less-than (< or lt)、大于Greater-than (> or gt)、小于或等于Less-than-or-equal (<= or le)、大于或等于Greater-than-or-equal (>= or ge)、等于Equal (== or eq)、不等于Not Equal (!= or ne),由英文名称可以得到lt、gt等运算子之缩写词,以下是Tomcat的一些例子:

表达式

结果

${1 < 2}

true

${1 lt 2}

true

${1 > (4/2)}

false

${1 > (4/2)}

false

${4.0 >= 3}

true

${4.0 ge 3}

true

${4 <= 3}

false

${4 le 3}

false

${100.0 == 100}

true

${100.0 eq 100}

true

${(10*10) != 100}

false

${(10*10) ne 100}

false

左边是运算子的使用方式,右边的是运算结果,关系运算也可以用来比较字符或字符串,按字典顺序来决定比较结果,例如:

表达式

结果

${'a' < 'b'}

true

${'hip' > 'hit'}

false

${'4' > 3}

true

EL运算子的执行优先级与Java运算子对应,如果有疑虑的话,也可以使用括号()来自行决定先后顺序。

另外, . 与 [] 被用来作为存取EL中变量所参考之对象属性,在某些程度上,. 与 [] 是可以交换替代使用的,例如 ${ user.name }也可以写为 ${ user['name'] },然而建议将[]用于取得像Map之类的对象属性,例如如果有一个Map对象可以用user.get("name")这样的方法来取得值,则可以在EL 中使用[]来进行存取,另外数组值也可以使用[]来指定索引取得指定的元素值。