spring3表达式语言(SpEL)
使用SpEl进行表达式操作,基本操作如下:
<!--第一步,构建解析 -->
ExpressionParser parser = new SpelExpressionParser(); <!--第二步,使用表达式进行解析-->
Expression exp = parser.parseExpression( "('hello').concat(#end)"); <!--第三步,使用上下文设值(可省)-->
StandardEvaluationContext sec = new StandardEvaluationContext();
sec.setVariable("end", "!"); <!--第四步,获取结果-->
<!--没有第三步时-->
exp.getValue();
<!--有第三步时-->
exp.getValue(sec);
▲基础特性
——SpEL使用#{…}作为定界符,所有在大框号中的字符都将被认为是SpEL.
——1、 字面量的表示
<property name="count" value="#{5}"/>
<property name="frequency" value="#{89.7}"/>
<property name="capacity" value="#{1e4}"/>
<property name="name" value="#{'Chuck'}"/>
<property name='name' value='#{"Chuck"}'/>
<property name="enabled" value="#{false}"/>
——2、 引用Bean,属性和方法
1>引用其他对象
<bean id=”saxophone” value=”com.xxx.xxx.Xxx”/>
<bean ..>
.
<property name="instrument" value="#{saxophone}"/>
.
<bean/>
通过id:“saxophone”将对象注入到instrument属性中,这与下面的配置是一样的:
<property name="instrument" ref="saxophone"/>
2> 引用其他对象的属性
<bean id="carl"
class="com.springinaction.springidol.Instrumentalist">
<property name="song" value="#{kenny.song}" />
</bean>
▲SpEL对集合的支持
<util:list id="cities">
<bean class="com.habuma.spel.cities.City"
p:name="Chicago" p:state="IL" p:population="2853114"/>
<bean class="com.habuma.spel.cities.City"
p:name="Atlanta" p:state="GA" p:population="537958"/>
<bean class="com.habuma.spel.cities.City"
p:name="Dallas" p:state="TX" p:population="1279910"/>
<bean class="com.habuma.spel.cities.City"
p:name="Houston" p:state="TX" p:population="2242193"/>
<bean class="com.habuma.spel.cities.City"
p:name="Odessa" p:state="TX" p:population="90943"/>
<bean class="com.habuma.spel.cities.City"
p:name="El Paso" p:state="TX" p:population="613190"/>
<bean class="com.habuma.spel.cities.City"
p:name="Jal" p:state="NM" p:population="1996"/>
<bean class="com.habuma.spel.cities.City"
p:name="Las Cruces" p:state="NM" p:population="91865"/>
</util:list>
——1、 获取Collection中的某个对象
〇通过下标访问,如下:
<property name="chosenCity" value="#{cities[2]}"/>
——2、获取Collection中的子集-通过条件筛选(注意新对象是一个新的Collection)
<!--筛选子集(.?[])-->
<property name="bigCities" value="#{cities.?[population gt 100000]}"/> <!--获取第一个(.^[])-->
<property name="aBigCity" value="#{cities.^[population gt 100000]}"/> <--获取最后一个(.$[])-->
<property name="aBigCity" value="#{cities.$[population gt 100000]}"/>
——3、集合的投影(.![])
<!-- 如果想获得所有城市的名称组成的列表,可用如下操作,将返回"Chicago", "Atlanta", "Dallas" -->
<property name="cityNames" value="#{cities.![name]}"/> <!-- 将返回"Chicago, IL", "Atlanta, GA", and "Dallas, TX".-->
<property name="cityNames" value="#{cities.![name + ', ' + state]}"/>
spring3表达式语言(SpEL)的更多相关文章
- Spring3表达式语言(SpEL)学习笔记
最新地址请访问:http://leeyee.github.io/blog/2011/06/19/spring-expression-language Spring Excpression Langua ...
- Spring3 表达式语言(SpEL)介绍
转载自:http://iyiguo.net/blog/2011/06/19/spring-expression-language/ 下一版本 项目需要使用到SpEL ,做一个保存.
- Sping表达式语言--SpEL
Spring表达式语言---SpEL 是一个支持运行时查询和操作对象的强大的表达式语言 语法类似于EL:SpEL使用#{...}作为定界符,所有在大括号中的字符都将被认为是SpEL SpEL为bean ...
- 7 -- Spring的基本用法 -- 12... Spring 3.0 提供的表达式语言(SpEL)
7.12 Spring 3.0 提供的表达式语言(SpEL) Spring表达式语言(简称SpEL)是一种与JSP 2 的EL功能类似的表达式语言,它可以在运行时查询和操作对象图.支持方法调用和基本字 ...
- Spring学习笔记--Spring表达式语言SpEL
Spring3引入了Spring表达式语言(Spring Expression Language,SpEL).SpEL是一种强大的.简洁的装配Bean的方式,它通过运行期执行的表达式将值装配到Bean ...
- Spring表达式语言SpEL简单介绍
Spring3引入了Spring表达式语言(Spring Expression Language,SpEL). SpEL有非常多特性.比較经常使用的包含: 1.使用bean的id来引用bean, 以下 ...
- Spring学习记录(七)---表达式语言-SpEL
SpEL---Spring Expression Language:是一个支持运行时查询和操作对象图表达式语言.使用#{...}作为定界符,为bean属性动态赋值提供了便利. ①对于普通的赋值,用Sp ...
- Spring表达式语言SpEL
Spring表达式语言,简称SpEL,是一个支持运行时查询和操作对象图的强大的表达式语言.语法类似于EL:SpEL使用#{…}作为定界符,所有在大括号中的字符都将被认为是SpEL SpEL为bean属 ...
- spring4-2-bean配置-7-Spring表达式语言SpEL
随机推荐
- Exception in thread java.lang.IllegalThreadStateException
比较好理解的抛出:非法线程状态抛出 出现这个问题的原因是: 对一个状态为RUNNABLE的线程再次调用start()方法,或者对一个状态为TERMINATED再次调用start()方法. 总之,在线程 ...
- Give My Text Back
Give My Text Back 标签(空格分隔): 算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 To prepare for the English exa ...
- 如何设计点击点击一个div,其他div做出对应反应,以及获取一个节点下的子节点
<div id="show"> <div>1</div> <div>2</div> <div>3</d ...
- linux下(修改|忘记)mysql密码
好尴尬,经常忘记自己的密码 修改的用户都以root为列.一.拥有原来的myql的root的密码: 方法一:在mysql系统外,使用mysqladmin# mysqladmin -u root -p p ...
- [SAP ABAP开发技术总结]ABAP程序之间数据共享与传递
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- JavaScript 拼接JSON
<script language="javascript" type="text/javascript"> var json="" ...
- ServiceStack.OrmLite 笔记5 改
修改 db.Update(new Person { Id = 1, FirstName = "Jimi", LastName = "Hendrix", Age ...
- Java——Java日期转Sql日期
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public cl ...
- NoSQL数据库的分布式模型
NoSQL数据库的分布式模型 单一服务器 在一个服务器完全能够胜任工作时就没必要考虑分布式,这样部署简单,维护也方便很多: 分片 特点 数据的各个部分存放在集群的不同服务器中: 比如按字母来划分:以a ...
- python_way ,day23 API
python_way ,day23 1.api认证 .api加密动态请求 2.自定义session 一.api认证 首先提供api的公司,如支付宝,微信,都会给你一个用户id,然后还会让你下一个SD ...