EL關係運算子

2021-06-22 11:46:18 字數 4350 閱讀 4512

算術運算子 

說 明 

範 例 

結 果+ 加 $ 22

- 減 $ 12

* 乘 $ 85

/ 或 div 除 $ 或 $ 3

% 或 mod 餘數 $ 或 $ 2

(1) a b

● 假若a 和b 為null:回傳 (long)0

● 假若a 或b 為bigdecimal 時,將另乙個也轉為bigdecimal,則:

·假若運算子為 + 時:回傳 a.add(b)

·假若運算子為 - 時:回傳 a.subtract(b)

·假若運算子為 * 時:回傳 a.multiply(b)

● 假若a 或b 為float、double 或包含 e / e 的字串時:

·假若a 或b 為biginteger 時,將另乙個轉為bigdecimal,然後依照運算子執行

運算·否則,將兩者皆轉為double,然後依照運算子執行運算

● 假若a 或b 為biginteger 時,將另乙個也轉為biginteger,則:

·假若運算子為 + 時:回傳 a.add(b)

·假若運算子為 - 時:回傳 a.subtract(b)

·假若運算子為 * 時:回傳 a.multiply(b)

● 否則,將a 和b 皆轉為long,然後依照運算子執行運算

● 假若運算結果產生異常時,則錯誤!

(2) a b

● 假若a 和b 為null:回傳 (long)0

● 假若a 或b 為bigdecimal 或biginteger 時,皆轉為bigdecimal,然後回傳 a.divide(b,bigdecimal.round_half_up)

● 否則,將a 和b 皆轉為double,然後依照運算子執行運算

● 假若運算結果產生異常時,則錯誤!

(3) a b

● 假若a 和b 為null:回傳 (long)0

● 假若a 或b為bigdecimal、float、double或包含 e / e 的字串時,皆轉為double,然

後依照運算子執行運算

● 假若a 或b 為biginteger 時,將另乙個轉為biginteger,則回傳 a.remainder(b)

● 否則,將a 和b 皆轉為long,然後依照運算子執行運算

● 假若運算結果產生異常時,則錯誤!

(4) -a

● 假若a 為null:回傳 (long)0

● 假若a 為bigdecimal 或biginteger 時,回傳 a.negate( )

● 假若a 為string 時:

·假若a 包含 e / e 時,將轉為double,然後依照運算子執行運算

·否則,轉為long,然後依照運算子執行運算

·假若運算結果產生異常時,則錯誤!

● 假若a 為byte、short、integer、long、float 或double

·直接依原本型別執行運算

·假若運算結果產生異常時,則 錯誤!

● 否則,錯誤!

tomcat 上的jsp-examples 中,有乙個el算術運算子的範例 basic-arithmetic.jsp。

關係運算子 

說 明 

範 例 

結 果= = 或 eq 等於 $ 或 $ true

!= 或 ne 不等於 $ 或 $ false

< 或 lt 小於 $或 $ true

> 或 gt 大於 $或 $ false

<= 或 le 小於等於 $或 $ true

>= 或 ge 大於等於 $或 $ false

注意在使用el 關係運算子時,

不能夠寫成:

$ = = $

或者$ = = $ }

而應寫成

(1) a b

● 假若a= = b,運算子為<=, le, >=, ge 時,回傳true,否則回傳false

● 假若a 為null 或b 為null 時,回傳false

● 假若a或b為bigdecimal時,將另乙個轉為bigdecimal,然後回傳a.compareto(b)的值

● 假若a 或b 為float、double 時,皆轉為double 型別,然後依其運算子運算

● 假若a或b為biginteger時,將另乙個轉為biginteger,然後回傳a.compareto(b)的值

● 假若a 或b為byte、short、character、integer或long時,皆轉為long 型別,然後依其

運算子運算

● 假若a 或b 為string 時,將另乙個也轉為string,然後做詞彙上的比較

● 假若a 為comparable 時,則:

·假若a.compareto(b)產生異常時,則錯誤!

● 否則,採用 a.compareto(b) 的比較結果

● 假若b 為comparable 時,則:

· 假若b.compareto(a)產生異常時,則錯誤!

● 否則,採用 a.compareto(b) 的比較結果

● 否則,錯誤!

(2) a b

● 假若a= = b,依其運算子運算

● 假若a 為null 或b 為null 時:= = /eq 則回傳false,!= / ne 則回傳true

● 假若a 或b 為bigdecimal 時,將另乙個轉為bigdecimal,則:

· 假若運算子為 = = / eq,則 回傳a.equals(b)

· 假若運算子為 != / ne,則 回傳 !a.equals(b)$

● 假若a 或b 為float、double 時,皆轉為double 型別,然後依其運算子運算

● 假若a 或b 為biginteger 時,將另乙個轉為biginteger,則:

·假若運算子為 = = / eq,則 回傳a.equals(b)

·假若運算子為 != / ne,則 回傳 !a.equals(b)

● 假若a 或b為byte、short、character、integer 或long時,皆轉為long 型別,然後依其

運算子運算

● 假若a 或b 為boolean 時,將另乙個也轉為boolean,然後依其運算子運算

● 假若a 或b 為string 時,將另乙個也轉為string,然後做詞彙上的比較

● 否則,假若a.equals(b)產生異常時,則 錯誤!

● 否則,然後依其運算子運算,回傳 a.equals(b)

tomcat 上的jsp-examples 中,有乙個el 關係運算子的範例basic-comparisons.jsp。

邏輯運算子 

說 明 

範 例 

結 果&& 或 and 交集 $ 或 $ true / false

|| 或 or 並集 $ 或 $ true / false

! 或 not 非 $ 或 $ true / false

下面舉幾個例子:$$

$ el 邏輯運算子的規則很簡單:

(1) a b

·將a 和b 轉為boolean,然後依其運算子運算

(2) a

·將a 轉為boolean,然後依其運算子運算

(1)

empty 運算子

empty 運算子主要用來判斷值是否為null 或空的,例如: $

接下來說明empty 運算子的規則:

(1) a

● 假若a 為null 時,回傳true

● 否則,假若a 為空string 時,回傳true

● 否則,假若a 為空array 時,回傳true

● 否則,假若a 為空map 時,回傳true

● 否則,假若a 為空collection 時,回傳true

● 否則,回傳false

(2) 條件運算子

所謂條件運算子如下:

$意思是說,當a 為true 時,執行b;而a 為false 時,則執行c。

(3) 括號運算子

括號運算子主要用來改變執行優先權,例如:$

至於運算子的優先權,如下所示(由高至低,由左至右):

· 、.

· ( )

· - (負)、not、!、empty

· *、/、div、%、mod

· +、- (減)

· <、>、<=、>=、lt、gt、le、ge

· = =、!=、eq、ne

· &&、and

EL表示式 關係運算子

近來公司做html5頁面的資料展現,發現集中使用了el表示式,而對於el表示式,發現自己對於關係運算子的運用還存在很多不足,特此 查閱以前的書籍資料和從網上看一些大牛的筆記,總結如下 首先el關係運算子有以下六個運算子 關係運算子 說明 範例 結果 或 eq 判斷符號兩邊是否相等,相等返回 true...

EL的運算子

其他都類似 也就是empty 1.empty運算 可以判斷乙個資料是否為空 如果為空則輸出true 不為空輸出false 為空的情況 為null的時候 為空 為空串的時候 為空 是object型別的陣列 長度為0的時候 list集合 元素個數為0的時候 map集合 元素個數為0的時候 2.點運算 運...

關係運算子

通過關係運算子可以比較兩個值之間的關係 如果關係成立它會返回true,如果關係不成立則返回false 大於號 判斷符號左側的是否大於右側的 如果關係成立,則返回true,如果關係不成立則返回false 判斷符號左側的值是否大於或等於右側的值 小於等於 非數值的情況 對於非數值進行比較時,會將其轉換為...