Spring入门学习——使用Spring表达式语言

来源:互联网 发布:我的世界透视矿物js 编辑:程序博客网 时间:2024/05/20 01:10
Spring3.0的Spring表达式语言(SpEL),这种语言提供了与JSF和JSP中UnifiedEL或者OGNL相似的功能。SpEL提供了医用的基础架构,可以在Spring容器之外使用。在容器之中,它可以用于在许多情况下大大简化配置。
 类型 用法 示例 文字表达式 用表达式语言所能做到的最简单的事情,实质上和编写Java代码相同。该语言支持String文字和各种数字 2342 'Hello Spring Enterprise Recipes' 布尔和关系操作符 表达式语言提供使用Java风格计算条件的能力 T(java.lang.Math).random()>5标准表达式  可以枚举并返回Bean上的属性,与UnifiedEL方式相同,每个废弃的属性用句号分隔,使用JavaBean风格的命名惯例。在右边的示例中,表达式与getCat().getMate().getName()等价 cat.mate.name 类表达式 T()通知表达式语言对类而不是实例起作用。在右边的示例中,第一个例子为java.lang.Math生成一个Class实例——与调用java.lang.Math.class等价。第二个例子调用给定类型上的静态方法。因此,T(java.lang.Math).random()等价于调用java.lang.Math.random() T(java.lang.Math)
 T(java.lang.Math).random() 访问数组、list和map 你可以使用括号和关键字索引  list、数组和map,对于数组或者list官架子是索引号,对于map来说是一个对象。在示例中,可以看到java.util.List有4个字符,索引号为1,返回的是'b'。第二个例子示范用索引“OR”访问map,产生与这个关键字关联的值 T(java.util.Arrays).asList('a','b','c','d')[1]
 T(SpelExceptionDemo).MapOfStates And Capitals['OR'] 方法调用 方法可以在实例中调用,就像Java中一样。这是基本JSF或JSP表达式语言的显著改进 'Hello,World'.toLowerCase() 关系操作符 可以比较数值,返回值为布尔值 23==person.age
 'fala'<'fido' 调用构造程序 可以创建对象并调用其构造程序。例子中创建简单的String和Cat对象 new String('Hello Spring Enterprise Recipes,again!')
 new Cat('Felix') 三元操作符 三元表达式正如你预期的,输出真值情况下的值 T(java.lang.Math).random()>5?'She loves me':'She loves me not' 变量SpEL让你设置和求变量值。变量可以由表达式解析器 上下文安装,还有一些隐含变量,如#this始终访问上下文的根对象  #this.firstName
 #customer.email 集合投影 SpEL中有一个非常强大的功能,就是执行map和集合的高级操作。这里,你为cats list创建一个投影。在这个例子中,返回值是列举集合中每只猫的名称属性的集合。这样,cats是cat对象的集合。返回值则是String对象的集合 cats![name] 集合选择 选择让你在集合中的每个项目基础上计算一个断言,仅保留那些断言为真的元素,从而动态地从集合或者map中过滤对象。例子中,计算Map中每个Entry的java.util.Map.Entry.value属性,如果值(这里是String)是以's'开始的小写字符串,那么就被保留。其他都将被丢弃 书中例子排版问题,不做例举 模板化表达式 可以使用表达式语言计算字符串表达式中的表达式。返回计算的结果。例子中,结果由计算三元表达式并根据结果包含“good”或者“bad”动态创建 Your fortune is ${T(java.lang.Math).random()>5?'good':'bad'}    未完待续
0 0
原创粉丝点击