Spring3.1——Spring表达式语言SpEL

创建步骤:

     (1)创建ExpressionParser对象。表达式解析器。

     (2)调用ExpressionParser对象的parseExpresssion方法解析字符串,得到Expression对象。

     (3)调用Expression对象的getValue()方法,即可得到表达式的值。

eg1:基本语法



eg2:变量语法

     变量语法:
     abc.xyz: 获取Context中根对象的getAbc().getXyz()的返回值。
     #abc.xyz:获取Context名为abc的对象的getXyz()返回值。


eg3:简化配置文件中的配置,消除子元素

在Spring配置文件中使用Sp EL, 将Sp EL表达式放在 #{} 里面即可。

在Spring配置文件中, 求表达式值的Context就是Spring容器本身

修改前的代码可参考修改前



修改后源码:

<!-- JFrame mainWin = new JFrame("我的窗口"); -->
<bean id="mainWin" class="javax.swing.JFrame"
	c:_0="我的窗口"
	p:visible="true"
/>
<!-- JTextArea jta = new JTextArea(9 ,60); -->
<bean id="jta" class="javax.swing.JTextArea"
	c:_0="9"
	c:_1="60"
/>
<!--mainWin.add( new JScrollPane(jta) );(使用嵌套bean) -->
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"
	p:targetObject-ref="mainWin"
	p:targetMethod="add"
	p:arguments="#{ {new javax.swing.JScrollPane(jta)} }"
/>

<!-- 	JPanel jp = new JPanel(); -->
<bean id="jp" class="javax.swing.JPanel"/>
<!-- mainWin.add(jp , BorderLayout.SOUTH); -->
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"
p:targetObject-ref="mainWin"
p:targetMethod="add"
p:arguments="#{ {jp,T(java.awt.BorderLayout).SOUTH} }"/>

<!-- JButton okBn = new JButton("确定"); -->
<bean id="okBn" class="javax.swing.JButton"
c:_0="确定"
/>
<!-- jp.add(okBn); -->
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"
	p:targetObject-ref="jp"
	p:targetMethod="add"
	p:arguments="#{ {okBn} }"/>

<!-- JButton cancelBn = new JButton("取消"); -->
<bean id="cancelBn" class="javax.swing.JButton" c:_0="取消"/>
<!-- jp.add(cancelBn); -->
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"
p:targetObject-ref="jp"
p:targetMethod="add"
p:arguments="#{ {cancelBn} }"/>

<!-- mainWin.pack();-->
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"
p:targetObject-ref="mainWin"
p:targetMethod="pack"
/>


猜你喜欢

转载自blog.csdn.net/ack_finding/article/details/78869912