SpringWebFlow:3(WebFlow实现重用)

王朝other·作者佚名  2008-05-19
宽屏版  字体: |||超大  

重用

WebFlow中的流程定义,如登录流程,有针对性地被结构化以便重用.他们定义封装了自己的生命周期.这些定义可以很容易的用支持Spring的其他Web组件配置重用.架构师应该识别出并定义通用的流程,如登录,搜索等以便今后的重用.

此外,Action如果正确的设计与Spring的结合,也可以被重用.他们可以同时被不同流程的action state使用.这些重用,既有应用级的又有流程级的,增强了维护性和代码可读性.

与struts结合

WebFlow与struts的结合部分地通过标准的Spring类和org.springframework.web.struts包中的一些配置.要与WebFlow相关概念(Action,ActionFlow)结合只需要注册WebFlow规格的struts action,并像普通的WebFlow action一样使用.

下面的配置代码来自struts-config.xml,描述了Struts的Action如何配置成流程的入口.注意WebFlow规格的Action类(org.springframework.web.flow.struts.FlowAction)和属性"flowId",它们将Action与登陆流程连接起来.例子中的登录流程在Spring的应用上下文(ApplicationContext)中作为一个loginFlow的bean管理.你还需要将这个流程注册为一个由Spring管理的bean.

<!- flow actions -

<action path="/loginFlow"

type="org.springframework.web.flow.struts.FlowAction"

name="actionForm" scope="request"

className="org.springframework.web.flow.struts.FlowActionMapping"

<set-property property="flowId" value="loginAction" /

</action

在这个例子中还用到了Spring中的RequestProcessor(org.springframework.web.struts.BindingRequestProcessor),是Spring的自动绑定form和bean.这一特性避免再去写单独的ActionForm对象.

<controller processorClass="org.springframework.web.struts.BindingRequestProcessor"/

同时,它还要求一个使用工具类来自动绑定Web表单中的值到一个对象.

<plug-in className="org.springframework.web.struts.BindingPlugin"/

WebFlow的预发布现在可以下载,其中包含一个样例应用("birthdate"),详细描述了这个整合过程.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有