使用 EL 可以直接實行一些算術運算、邏輯運算與關係運算,就如同在一般常見的程式語言中之運算。
算術運算子有加法(+
)、減法(-
)、乘法(*
)、除法(/
或 div
)與餘除(%
或 mod
)。以下是算術運算的一些例子:
${1}
1
${1 + 2}
3
${1.2 + 2.3}
3.5
${1.2E4 + 1.4}
120001.4
${-4 - 2}
-6
${21 * 2}
42
${3/4} 或 ${3 div 4}
0.75
${3/0}
Infinity
${10%4} 或 ${10 mod 4}
2
${(1==2) ? 3 : 4}
4
?:
是個三元運算子,如上表最後一個例子,?
前為 true
就傳回 :
前的值,為 false
就傳回 :
後的值。
邏輯運算子有 and
、or
、not
。一些例子為:
${true and false} | false |
${true or false} | true |
${not true} | false |
關係運算子有表示「小於」的 <
及 lt
(Less-than),表示「大於」的 >
及 gt
(Greater-than),表示「小於或等於」的 <=
及 le
(Less-than-or-equal),表示「大於或等於」的 >=
及 ge
(Greater-than-or-equal),表示「等於」的 ==
及 eq
(Equal),表示「不等於」的 !=
及 ne
(Not-equal)。
關係運算子也可以用來比較字元或字串,而 ==
、eq
與 !=
、ne
也可以用來判斷取得的值是否為 null
。以下是一些實際的例子:
${1 < 2} 或 ${1 lt 2} | true |
${1 > (4/2)} 或 ${1 gt (4/2)} | false |
${4.0 >= 3} 或 ${4.0 ge 3} | true |
${4 <= 3} 或 ${4 le 3} | false |
${100.0 == 100} 或 ${100.0 eq 100} | true |
${(1010) != 100} 或 ${(1010) ne 100} | false |
${'a' < 'b'} | true |
${“hip” > “hit”} | false |
${'4' > 3} | true |
EL 運算子的執行優先順序與 Java 運算子對應,也可以使用括號 ()
來自行決定先後順序。