一、EL中的算術運算
EL和其他語言一樣,同樣也提供了基本的算術運算(加、減、乘、除和取余),如下圖。
| 運算符 | 功能 | 示例 | 結果 |
| + | 加 | ${19+1} | 20 |
| - | 減 | ${66-30} | 36 |
| * | 乘 | ${52.1*10} | 521 |
| /或者div | 除 | ${5/2}或${5 div 2} |
2.5 |
| ${9/0}或${9 div 0} |
Infinity | ||
| %或者mod | 取余 | ${17%3}或${17 mod 3} | 2 |
| ${15%0}或${15 mod 0} | 將拋出異常:java.long.ArithmeticException:/by zero |
注意:EL的“+”運算符與java的“+”運算符不同,它不能實現兩個字符串之間的連接,如果使用該運算符連接兩個不可以轉換為數值型的字符串,將拋出異常;如果使用該運算符連接兩個可以轉換為數值型的字符串,EL則自動將這兩個字符串轉換為數值型,再進行加法運算。
二、如何判斷EL中的對象是否為空
判斷對象是否為空,可以通過empty運算符來實現,該運算符是一個前綴(prefix)運算符,即empty運算符位於操作數前方,用來確定一個對象或變量是否為null或空。empty運算符的格式如下:
${empty expression}
參數說明:
expression:用於指定要判斷的變量或對象。
例:定義兩個request 范圍內的變量user和user1,分別設置值為null和“”。代碼如下:
1 <%request.serAttribute("user","");%> 2 <%request.setAttribute("user1",null);%>
然后,通過empty運算符判斷user和user1是否為空,代碼如下:
1 ${empty user} //返回值為true 2 ${empty user1} //返回值為true
注意:一個變量或對象為null或空代表的意義是不同的。null表示這個變量沒有指明任何對象,而空表示這個變量所屬的對象其內容為空,例如,空字符串、空的數組或者空的List容器。
此外,empty運算符也可以與not運算符結合使用,用於判斷一個對象或變量是否為非空。
例如:要判斷request范圍中的變量user是否為非空可以使用一下代碼。
1 <%request.setAttribute("user","")%> 2 ${not empty user} //返回值為false
