spring web flow学习笔记一
2013-04-18 13:56
274 查看
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将会被抛出。
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将会被抛出。
相关文章推荐
- Spring Web Flow 学习笔记(2)-流程的组件
- Spring Web Flow 学习笔记(1)
- Spring学习之旅(十一) Spring Web Flow的配置及简单使用
- Spring学习笔记之构建Spring Web应用程序
- 第8章 使用Spring Web Flow--学习一个简单例子
- Spring Boot 学习笔记(二)—— WEB相关配置
- xfire+spring webservice 学习笔记
- Spring学习笔记-C6-渲染Web试图
- Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目
- springMVC学习笔记,SpringMV与web项目的整合(xml方式)
- Spring Web MVC框架学习笔记
- Beginning Spring学习笔记——第11章 使用Spring开发REST风格的Web服务
- spring boot 学习笔记(二) 构建web支持jsp
- Spring Boot进阶之Web进阶 学习笔记
- Java Web 学习笔记(四) 基于 SpringMVC+BootStrap 创建WebApp
- spring: web学习笔记1--异常处理:No adapter for handler
- Spring Boot 学习笔记【6】使用FreeMarker与BootStrap开发Web
- JavaWeb学习笔记-spring-08-AOP-概述
- Java Web 学习笔记之十:通过Spring启动Jetty服务器
- Spring学习笔记之渲染Web视图