EL 運算子


使用 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 就傳回 : 後的值。

邏輯運算子有 andornot。一些例子為:

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