SpEl运算符
运算符类型 | 运算符 |
算术运算 | +、-、*、/、%、^ |
比较运算 | 符号形式:<、>、==、<=、>= 文本形式:lt、gt、eq、le、ge |
逻辑运算 | and、or、not、| |
条件运算 | ?: (ternary)、?: (Elvis) |
正则表达式 | matches |
计算集合 | []、.?[]、.^[]、.$[]、.![] |
1.算术运算
+、-、*、/、%:不多说
^:为乘方
当使用String类型的值时,+为连接操作,如:#{”a” + “b”} 结果为”ab”
2.比较运算
在大多数情况下,符号运算符与对应的文本运算符作用是相同的
3.逻辑运算
不多说
4.条件运算
三元运算符:跟java差不多,如:当“a”大于10的时候返回true,否则返回false:
#{a>10 ? true : false}
Elvis运算符:检查null值,并用一个默认值来替代null,如:如果a为null,则返回’b’:
#{a?:’b’}
5.正则表达式
matches运算符:正则表达式对String类型的文本(作为左边参数)应用正则表达式(作为右边参数),如:
判断“e”是否是数字:
#{a matches ‘[0-9]*’
6.计算集合
有一个数组的名字为dogs,集合内为dog的实体类,dog有name,age等属性
[下标]运算符:用来从集合或数组中按照索引获取元素和从String中获取指定位置的字符,下标从0开始,如:
获取狗群中第3只狗的名字:
#{ dogs [2].name}
获取字符串中第2个字符:
#{‘zifucuan’[1]}
.?[表达式] 运算符:用来对集合进行过滤,得到集合的一个子集,如:获取年龄为2岁的所有狗:
#{dogs.?[age == 2]}
.^[表达式]:查询满足表达式的第一个匹配项,如:获取第一只年龄为2岁的狗:
#{dogs.^[age == 2]}
.$[表达式]:查询满足表达式的最后一个匹配项,如:获取最后一只年龄为2岁的狗:
#{dogs.$[age == 2]}
.![属性名]:从集合的每个成员中选择特定的属性放到另外一个集合中,如:获取所有狗的名字:
#{dogs.![name]}