文档章节

spring webflow(流程)

刘显示
 刘显示
发布于 2015/06/09 11:41
字数 477
阅读 46
收藏 0

Spring WebFlow的关注点的层次比Sping MVC 或者是 Structs 更高。不只是关注于如何e构建Web界面,更加关注于流程,也就是Flow。

Flow标签:<flow/>是根元素,所有的定义从这个元素开始。    
State标签:<view-state/>用来表示一个拥有View的State。在这个标签里面,指定了用于描述View的文件的位置。这个位置是约定俗成的,由设置的id来指定。比如<view-state id=”enterBookDetails”/>,那么这个State的View的描述文件为enterBookDetails.xhtml。如果这个Flow的定义文件存放在/WEB-INF/xxxx/booking/目录下面,那么这个View的定义文件就是/WEB-INF/xxxx/booking/enterBookDetails.xhtml。    
transaction标签:<transaction/>是view-state的子标签,定义一个页面转向,比如<transaction on=”submit” to=”reviewBooking”/>,则是说明了当触发submit事件的时候,转到下面一个state,转向的state的id为reviewBooking。    
end-state标签:<end-state/>这个表示flow的出口,如果某个transaction指向了一个end-state标签,表示这个flow已经结束。一个flow可以有多个end-state标签,表示多个出口。

Actions:一个Spring WebFlow里面很重要的概念,从上面可以看出,view-state、transaction、end-state标签只是表示Flow的流程,页面跳转,里面没有说明业务逻辑的操作。Action就是用来调用这些业务逻辑操作的。    
在下面几个点中,我们可以调用Action:

这个标签可能是Action里面最常使用的标签,用Spring定义的表达式来确定一个Action去调用哪个Spring Bean的方法,然后返回值、返回类型是什么。

下面是login-webflow.xml里面的例子

<action-state id="realSubmit">  
<evaluate expression="authenticationViaFormAction.submit(flowRequestContext, flowScope.credentials, messageContext)" />    
<transition on="warn" to="warn" >    
<evaluate expression="giantCasInterceptor.doBind(flowRequestContext, flowScope.credentials)" />    
</transition>    
 <transition on="success" to="sendTicketGrantingTicket" >    
<evaluate expression="afterLoginSuccess.doBind(flowRequestContext, flowScope.credentials)" />    
</transition>    
<transition on="error" to="generateLoginTicket" >    
 <evaluate expression="giantCasInterceptor.doBind(flowRequestContext, flowScope.credentials)" />    
</transition>    
</action-state>

其中afterLoginSuccess对应cas-servlet.xml<bean id="afterLoginSuccess" class="com.giant.validate.AfterLoginSuccess" />

© 著作权归作者所有

共有 人打赏支持
刘显示
粉丝 5
博文 93
码字总数 25037
作品 0
郑州
程序员
jasig CAS登录验证分析

jasig CAS登录验证分析: 之前文章讲到了怎么利用jasig CAS实现sso: http://my.oschina.net/indestiny/blog/200768 本文对jasig CAS验证过程做个简单的分析,便于以后能够更好定制自己的CAS...

ihaolin
2014/02/23
0
9
Spring Web Flow 2.0 入门

开始之前 关于本教程 本教程通过一个简化的购物车应用,介绍了如何使用 Spring Web Flow 2.0 来构建 Web 应用程序。本教程以讲解实例为主,为了读者更好地理解 Spring Web Flow ,也有部分理...

ihaolin
2014/02/22
0
0
Spring IDE的网友评论

Spring IDE是一系列Eclipse插件,目的开发基于Spring的应用,最新发布的Spring IDE增加了对Spring Webflow支持。Spring Webflow是下一代Java Web应用控制框架,它用来控制在domain-specific...

红薯
2009/12/11
1K
4
可视化Spring开发插件--Spring IDE

Spring IDE是一系列Eclipse插件,目的开发基于Spring的应用,最新发布的Spring IDE增加了对Spring Webflow支持。Spring Webflow是下一代Java Web应用控制框架,它用来控制在domain-specific...

匿名
2008/12/01
35.1K
4
cas加入验证码以及强制密码到期修改流程

以下为手动改配置文件的配置。 配置文件: 一:cas-servlet.xml,路径:cas/WEB-INF。这个是cas的MVC的配置文件,找到handlerMappingC这个bean,在其<props></props>标签中加入两行配置,分别...

Catelyn
2013/12/05
0
21

没有更多内容

加载失败,请刷新页面

加载更多

下一页

最全最强解析:支付宝钱包系统架构内部剖析(架构图)

支付宝系统架构概况 典型处理默认 资金处理平台 财务会计 支付清算 核算中心 交易 柔性事务 支付宝的开源分布式消息中间件–Metamorphosis(MetaQ) Metamorphosis (MetaQ) 是一个高性能、高可...

晨猫
34分钟前
4
0
竞品分析

那什么样的场景需要用关键纬度分析法分析竞品呢? 竞品分析的目的是为了看竞品们和自己产品重合的业务都具备哪些功能点,以及这些功能是怎么做的,以此确定自己产品的优化方向。 竞品们的业务...

于谦老师
41分钟前
1
0
OSChina 周三乱弹 —— 公司女同事约我

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子:分享水木年华的单曲《蝴蝶花(2002年大提琴版)》 《蝴蝶花(2002年大提琴版)》- 水木年华 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
今天
1K
16
Linux环境搭建 | VMware下共享文件夹的实现

在进行程序开发的过程中,我们经常要在主机与虚拟机之间传递文件,比如说,源代码位于虚拟机,而在主机下阅读或修改源代码,这里就需要使用到 「共享文件」 这个机制了。本文介绍了两种共享文...

良许Linux
今天
9
0
JUC锁框架——AQS源码分析

JUC锁介绍 Java的并发框架JUC(java.util.concurrent)中锁是最重要的一个工具。因为锁,才能实现正确的并发访问。而AbstractQueuedSynchronizer(AQS)是一个用来构建锁和同步器的框架,使用A...

长头发-dawn
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部