EL关系运算符
来源:互联网 发布:淘宝点击热力图 编辑:程序博客网 时间:2024/05/17 04:16
- EL 算术运算符主要有以下五个:
算术运算符
说 明 范 例 结 果
+ 加 ${ 17 + 5 } 22
- 减 ${ 17 - 5 } 12
* 乘 ${ 17 * 5 } 85
/ 或 div 除 ${ 17 / 5 } 或 ${ 17 div 5 } 3
% 或 mod 余数 ${ 17 % 5 } 或 ${ 17 mod 5 } 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 {/ , div} B
● 假若A 和B 为null:回传 (Long)0
● 假若A 或B 为BigDecimal 或BigInteger 时,皆转为BigDecimal,然后回传 A.divide(B,BigDecimal.ROUND_HALF_UP)● 否则,将A 和B 皆转为Double,然后依照运算符执行运算
● 假若运算结果产生异常时,则错误!
(3) A {% , mod} 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。
- EL 关系运算符有以下六个运算符:
关系运算符
说 明 范 例 结 果
= = 或 eq 等于 ${ 5 = = 5 } 或 ${ 5 eq 5 } true
!= 或 ne 不等于 ${ 5 != 5 } 或 ${ 5 ne 5 } false
< 或 lt 小于 ${ 3 < 5 }或 ${ 3 lt 5 } true
> 或 gt 大于 ${ 3 > 5 }或 ${ 3 gt 5 } false
<= 或 le 小于等于 ${ 3 <= 5 }或 ${ 3 le 5 } true
>= 或 ge 大于等于 ${ 3 >= 5 }或 ${ 3 ge 5 } false
注意
在使用EL 关系运算符时,不能够写成:
${param.password1} = = ${param.password2}
或者
${ ${param.password1 } = = ${ param.password2 } }
而应写成
(1) A {<, >, <=, >=, lt, gt, le, ge} 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 {= =, !=, eq, ne} B
● 假若A= = B,依其运算符运算
● 假若A 为null 或B 为null 时:= = /eq 则回传false,!= / ne 则回传true
● 假若A 或B 为BigDecimal 时,将另一个转为BigDecimal,则:
· 假若运算符为 = = / eq,则 回传A.equals(B)
· 假若运算符为 != / ne,则 回传 !A.equals(B)
${ param.password1 = = param.password2 }● 假若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。
- EL 逻辑运算符只有三个:
逻辑运算符
说 明 范 例 结 果
&& 或 and 交集 ${ A && B } 或 ${ A and B } true / false
|| 或 or 并集 ${ A || B } 或 ${ A or B } true / false
! 或 not 非 ${ !A } 或 ${ not A } true / false
下面举几个例子:
${ param.month = = 7 and param.day = = 14 }
${ param.month = = 7 || param.day = = 14 }
${ not param.choice }
EL 逻辑运算符的规则很简单:
(1) A {&&, and, || 或 or } B
·将A 和B 转为Boolean,然后依其运算符运算
(2) {!, not}A·将A 转为Boolean,然后依其运算符运算
- EL 除了上述三大类的运算符之外,还有下列几个重要的运算符:
(1) Empty 运算符
(2) 条件运算符
(3) ( ) 括号运算符
(1) Empty 运算符
Empty 运算符主要用来判断值是否为null 或空的,例如:${ empty param.name }
接下来说明Empty 运算符的规则:
(1) {empty} A
● 假若A 为null 时,回传true
● 否则,假若A 为空String 时,回传true
● 否则,假若A 为空Array 时,回传true
● 否则,假若A 为空Map 时,回传true
● 否则,假若A 为空Collection 时,回传true
● 否则,回传false
(2) 条件运算符
所谓条件运算符如下:
${ A ? B : C}
意思是说,当A 为true 时,执行B;而A 为false 时,则执行C。
(3) 括号运算符
括号运算符主要用来改变执行优先权,例如:${ A * (B+C) }
至于运算符的优先权,如下所示(由高至低,由左至右):
· []、.
· ( )
· - (负)、not、!、empty
· *、/、div、%、mod
· +、- (减)
· <、>、<=、>=、lt、gt、le、ge
· = =、!=、eq、ne
· &&、and
- EL关系运算符
- EL关系运算符
- EL的关系运算符
- EL表达式---关系运算符
- el表达式(关系运算符)
- EL表达式的关系运算
- EL表达式的逻辑运算和关系运算
- EL运算符
- EL运算符
- EL运算符
- el运算符
- EL运算符
- El表达式运算符
- EL 中的运算符
- El表达式运算符
- EL运算符
- El表达式运算符
- EL表达式三元运算符
- CVPR 2013 录用论文(目标跟踪部分)
- doxygen注释规范示例(C++版)
- timed_output驱动架构
- 遭遇潜规则惨遭性侵的16大女星
- linux进程上下文理解
- EL关系运算符
- mysqldump: Got error: 1356 解决方法
- 小知识点(二)EL表达式格式化日期
- 图算法一之图的创建和转换
- WiFi共享精灵,生活好伴侣
- 如何让toolbar的item均匀分布
- android广播集合,intent,action
- 分享下windows下Hacker的学习路线吧
- jQuery总结