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

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