EL语言表达式 (三)【EL中的算术运算以及判断EL对象是否为空】
程序员文章站
2024-02-21 10:37:07
...
一、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