指引网

当前位置: 主页 > 编程开发 > Java >

Spring WebFlow :3(WebFlow实现重用)

来源:网络 作者:佚名 点击: 时间:2017-11-14 04:46
[摘要] 重用 WebFlow中的流程定义,如登录流程,有针对性地被结构化以便重用.他们定义封装了自己的生命周期.这些定义可以很容易的用支持Spring的其他Web组件配置重用.架构师应该识别出并定义通用的流
Spring

  重用
  
  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"),详细描述了这个整合过程.
  
  
  
  
------分隔线----------------------------