1,SpEL所能做的另外一件基础的事情就是通过ID引用其他的bean,并且可以调用bean的属性 、方法(可以使用方法的返回值)
例如:
#{ID.property} 调用bean的某一属性
#{ID.method()} 使用benn某一方法的返回值
#{ID.method().method()} 使用bean某一方法的返回值的某一方法
为避免返回值为空还可以#{ID.method()?.method()}
2.使用T()访问应用的类,并通过T()调用类的方法和常量(注意是静态的)
例如:
T(java.util.Math) 调用Math类
T(java.util.Math).PI 调用Math的静态变量PI
T(java.util.Math).random 调用Math的静态方法random()
3.SpEL运算符
例如:
#{T(java.util.Math).PI *circle.radius ^ 2}
#{string1 + 'by' + string2} 字符串的叠加和java相同
#{count == 100} or #{count eq 100} 比较表达式成立返回true,反之false
#{count > 100 ? "Yes" : "No"} 三目运算符
#{ object ? : 'string'} Elvis运算符,如果string为null则赋值为‘string'
#{email matches '[a-zA-z0-9._%+-] + @[a-zA-Z0-9.-] + \\.com' } SpEL匹配正则表达式
#{ID.array[4].propertie} SpEL可以访问bean中数组的元素
#{ID.array.?[arrayProperty eq 'property']} 返回bean中array集合中arrayProperty属性等于’property'