快速业务通道

Spring Web Flow 2.0入门 - 用Unified EL实现业务逻辑 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20

Spring Web Flow 2.0入门 - 用Unified EL实现业务逻辑

时间:2011-02-01 IBM 吕焱飞

到现在为止,这个购物车应用只是实现了页面之间的跳转,接下来我们要实现与业务逻辑相关的功能。由于本教程的重点在于介绍如何应用 Spring Web Flow ,所实现的业务比较简单,与实际应用有较大的距离,请读者谅解。

业务的逻辑涉及到数据的获取、传递、保存,相关的业务功能函数的调用等内容,这些功能的实现都可用 Java 代码来完成,但定义 Spring Web Flow 的语法与 Java 是无关的,这就要求 Spring Web Flow 提供与 Java 代码的整合机制。要了解这种机制,关键在于搞清楚两个问题:

业务逻辑代码在什么时候被调用?

业务逻辑代码在调用后得到的数据如何保存、传递?

业务逻辑代码在什么时候被调用?

在 Spring Web Flow 中,业务逻辑代码的执行可由以下三种情形来触发:

客户端请求中包含了 _eventId 参数

执行到框架自定义的切入点

执行到 <action-state> 元素

客户端请求中包含了 _eventId 参数

这种方式一般用在 state 之间的 transition ,通过指定 _eventId 参数的值,表明了客户的行为,从而导致相应事件的发生,在 Spring Web Flow 的定义文件中可以通过 evaluate 元素来指定要处理的业务逻辑。参看清单21:

清单 21 transition 示例

<transition on="submit"> <evaluate expression="validator.validate()" /> </transition>

清单 21 的代码表示,当客户端的请求中包含“ _eventId=submit ”,则 evaluate 元素中 expression 属性所指明的表达式会被执行,即 validator 对象的validate 方法会得到调用。

执行到框架自定义的切入点

Spring Web Flow 定义了 5 个切入点,通过 flow 定义文件的配置,可在这 5 个切入点插入相关业务逻辑代码。

表 2 Spring Web Flow 自定义的切入点

切入点名称 XML 元素名称 触发时刻
flow start on-start flow 执行之前
state entry on-entry 进入某个 state 之后,做其他事情之前
view render on-render 在进入 view 的 render 流程之后,在 view 真正 render出来之前
state exit on-exit 在退出 state 之前
flow end on-end flow 执行结束之后

Spring Web Flow 2.0入门 - 用Unified EL实现业务逻辑(2)

时间:2011-02-01 IBM 吕焱飞

清单 22 给出了在 view render 切入点插入业务逻辑代码的例子:

清单 22 on-render 元素

<view-state id="viewCart" view="viewCart" >  <on-render>   <evaluate expression="productService.getProducts()"    result="viewScope.products"/>  </on-render> </view-state>

执行到 <action-state> 元素

Spring Web Flow 中的这个 <action-state> 是专为执行业务逻辑而设的 state 。如果某个应用的业务逻辑代码即不适合放在 transition 中由客户端来触发,也不适合放在 Spring Web Flow 自定义的切入点,那么就可以考虑添加 <action-state> 元素专用于该业务逻辑的执行。示例代码参看清单23:

清单 23 action-state 示例

<action-state id="addToCart">  <evaluate expression="cart.addIt

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号