服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

spring webflow :2(webflow的关键组件)


  webflow的核心组件
  
  一个spring webflow应用中包含一个或多个流程,通常每个流程包括执行action的动作状态(actionstates),显示状态(viewstates),跳转动作(transitions).
  
  流程
  
  一个流程是一个预先定义好的用户交互行为的集合,表示为一个由动作状态和显示状态构成的树,状态之间通过跳转联系.
  
  下面的登录注册是一个webflow的例子,包含了一些典型的构件,例如loginform,actionstate,transition.这些构件通过一个xml文件描述:
  
  <?xml version="1.0" encoding="utf-8"?>
  
  <!doctype webflow public "-//spring//dtd webflow//en"
  "http://www.springframework.org/dtd/spring-webflow.dtd">
  <webflow id="loginsequence" start-state="loginform">
  
  <action-state id="loginform">
  <action bean="loginformaction"/>
  <transition on="success" to="formview"/>
  </action-state>
  ...
  <view-state id="formview" view="entercredentials">
  <transition on="submit" to="bindandvalidateform"/>
  </view-state>
  ...
  <end-state id="successview" view="displaymain"/>
  
  这个流程以loginform开始,以"successview"结束(修饰主页面"displaymain" 的组件.流程可以通过xml文档配置,或者abstractflowbuilder的子类.
  
  动作状态(actionstates)
  
  actionstates对用户事件或其他事件进行响应.actionstates自身又可以包含其他可执行的action和transition.下面的代码配置了"loginform"这个actionstate.
  
  <action-state id="loginform">
  <action bean="loginformaction"/>
  <transition on="success" to="formview"/>
  </action-state>
  
  动作(actions)
  
  action是actionstate可以连接,重用,声明调用的最小单位.action继承自abstractaction类,该类实现了doexecuteaction方法.这个方法的参数:requestcontext,webflow(其中封装了所有流程相关的数据).loginform动作状态通过spring的自动装配特性调用loginformaction动作.doexecute
  
  action方法被自动调用,同时可以处理一些登录准备,预先装入等操作.
  
  public loginformaction extends abstractaction{
  
  protected event doexecuteaction(requestcontext context)
  throws exception{
  //perform some login specific setup operations
  ...
  
  }//end method
  
  }//end class
  
  显示状态(viewstate)
  
  viewstate初始化对显示组件(jsp,tile等)的修饰操作.下面是一个viewstate的配置代码
  
  <view-state id="formview" view="entercredentials">
  <transition on="submit" to="bindandvalidateform"/>
  </view-state>
  
  当来自loginform的actionstate返回一个"success"时,这个viewstate将会被调用.它将修饰"entercredentials"显示组件(可以是一个常见的struts forward).
  
  跳转(transition)
  
  和通常的状态机一样,webflow定义了状态以及状态之间跳转动作.这些跳转动作很类似struts中的actionforward.同样是负责连接两个状态.
  
  后继动作(continuation)
  
  后继动作(continuation)允许你回退并重新开始程序执行流程 -- 从程序执行的角度来看是一个适时的逆流程.continuation的概念最早来自编程语言,但是却从来没有被用于像java,vb,c++这样主流的编程语言中.webflow创造性地实现了continuation.由于continuation可以用来持久和重造任何一个流程状态,从而提供给你极大的自由.

扫描关注微信公众号