使用 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 運算子對應,也可以使用括號 ()
來自行決定先後順序。