首页 > 学院 > 开发设计 > 正文

Spring WebFlow :3(WebFlow实现重用)

2019-11-18 12:50:47
字体:
来源:转载
供稿:网友

  重用
  
  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"),具体描述了这个整合过程.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表