spring web flow学习笔记一

1、Spring web flow 内置五种具体state 类型,这些state有常用控制器的行为,分别:

    ViewState:允许用户参于流程flow

   ActionState:执行业务应用代码 

   DecisionState:流程的路由选择

   SubflowState:分发出子流程

   EndState:中止流程

 除EndState外,其它四个state类型均可流转到其它state类型中。类关系图如下:

2、ViewState

当进一个view state后,用户(或者其他外部客户端)就可以参与到这个flow中。这种参与的流程如下:
  如果此view state配置了<render-actions>节点,先执行此元素里中action对应方法,然后此viewstate将 会生成一个作为逻辑应答的org.springframework.webflow.execution.ViewSelection发送给调用者。
  flow execution在这里被“暂停”,控制被交还到调用系统那里。调用系统使用返回的ViewSelection来给用户 选择一个合适的操作界面(或者其他应答)。经过一段时间的“思考”之后,用户发送一个输入事件将flow 从"pasue“点恢复过来。

3、transition:

transition在flow中定义一条路径,它将flow从一个state带到另一个。后台对应的源码为TransitionDefinition。所有的TransitionAbleStates都有一个或者更多的transitions,每个都定义了到在同一个flow中另一个state的路径(或者递归的路径回到同一个state)。当进入一个transition state的时候,他会执行一系列的behavior。比如,一个叫做"Display Form"的TransitionableStates可以用来显示一个表单并暂停等待用户输入。这个state的执行结果叫做事件,用来驱动state的转移的执行。比如,用户可以点击表单的提交按钮,这个按钮会发送一个满足转移到“处理提交”状态条件的"submit event"xml配置中,在transition元素中可以配置action state
一个transition可以配置一个或者更多个在transition本身因为ecutionCriteria而执行前需要执行的action。如果一个或者多个Action没有成功完成,转移将不会进行

动态transitions (Dynamic transitions)
  一个transition的目标state resolver可以被配置成计算动态目标状态 。 如:<transition on="back" to="${flowScope.lastStateId}">
全局transitions(Global transitions)
  一个或者更多transition会被在state-level附带的加入到所有的TransitionableState 类型中去。同样,被所有state所共有的transition也可以在flow-level中加入。这种共有的转移就叫做全局转移。
  当一个transitionable state收到一个事件后,他会首先尝试去匹配一个自己的transition,如果没有一个transition能够在 state level被满足,他将会去匹配global transition。如果仍然没有能够满足的transition,一个 NoMatchingTransition Exception将会被抛出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值