大可制作:QQ群:31564239(asp|jsp|php|mysql)

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 中使用[]来进行存取,另外数组值也可以使用[]来指定索引取得指定的元素值。