今天翻阅Spring in action一书,无意中看到了SpringEL 表达式 (以下简称EL),说来惭愧,spring in action 一书已经差不多看过一遍了,居然到现在才知道 EL。
EL的用法很简单:#{表达式},跟JSP的EL表达式差不多,都是在系统运行时,根据EL中的表达式,动态获取其他bean中的属性或方法返回值。
例如:
<bean id="itemBean" class="com.lei.demo.el.Item">
<property name="name" value="itemA" /><!-在java中的定义:String name;-->
<property name="total" value="10" /><!-在java中的定义:Double total;-->
<property name="resultList" /> <!-在java中的定义:ArrayList resultList=new ArrayList();-->
<property name="mapInfo" /> <!-在java中的定义:Map resultList=new HashMap();-->
</bean>
<bean id="customerBean" class="com.lei.demo.el.Customer">
<property name="itemTotal" value="#{itemBean.total}" /><!-访问基本数据类型变量-->
<property name="itemName" value="#{itemBean.name}" /><!-访问基本数据类型变量-->
<property name="itemList" value="#{itemBean.resultList}" /><!-访问集合-->
<property name="itemTitle" value="#{itemBean.resultList[0]}" /><!-访问list中的元素,通过[下标]访问-->
<property name="itemErrorInfo" value="#{itemBean.mapInfo['error']}" /><!-访问Map中的元素,通过[KEY]访问-->
<property name="isOK" value="#{itemBean.mapInfo['error'].equals('')}" /><!-也可以组合运算符使用-->
<property name="resultInfo" value="#{itemBean.mapInfo['error'].equals('')?'成功':'失败'}" /><!-当然,三元运算符也可以用-->
</bean>
以上是在XML配置文件中的写法,如果你的项目使用注解,springEL一样支持注解,用法是:@Value("#{表达式}"),例如:
@Component("customerBean")
public class Customer {
@Value("#{itemBean.total}");
private String itemTotal;
@Value("#{itemBean.mapInfo['error'].equals('')?'成功':'失败'}")
private String isOK
//.....以此类推
}
好了,大概就是这个样子,谢谢阅读,这次讲的比较粗,如果理解不了解,这个文章更加细致易懂:http://www.cnblogs.com/leiOOlei/p/3543222.html