最常用的SpEL表达式
SpEL
基础表达式
浮点值
#{3.145}
#{4.3E4}
字符串
#{'Hello'}
布尔值
#{false}
对象表达式
基础对象应用
#{User} 获取User对象
#{User.name} 获取User对象的name属性
#{User.getName()} 调用User的getName()方法
判断空
如果getAdmin()的返回值是null的话,将会出现NullPointerException异常,我们可以使用类型安全的运算符
#{User.getAdmin()?.getAuth()}
获取类中特殊值
如果要在SpEL中访问类作用域的方法和常量的话,要依赖**T()**这个关键的运算符
T(java.lang.Math).PI
集合
#{jukebox.song[4].title}
#{jukebox.song [T(java.lang.Math).random() * jukebox.songs.size() ].title}
#{'this is a test' [3]}
- 说明:“[]”运算符用来从集合或数组中按照索引获取元素,实际上,它还可以从String中获取一个字符
运算表达式
算术运算符
#{T(java.lang.Math).PI * circle.radius ^ 2}
比较运算符
#{counter.total == 100}
#{counter.total eq 100}
三元运算符
#{scoreboard.score > 1000 ? "winner" : "loser"}
正则表达式
SpEL通过matches运算符支持表达式中的模式匹配。 matches运算
符对String类型的文本(作为左边参数)应用正则表达式(作为右边参数)。 matches的运算结果会返回一个Boolean类型的值:如果与
正则表达式相匹配,则返回true;否则返回false
#{admin.email matches '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9._%+-]+\\.com'}