文档章节

spring webflow(流程)

郑州-小万
 郑州-小万
发布于 2015/06/09 11:41
字数 477
阅读 50
收藏 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
郑州
程序员
私信 提问
Spring IDE的网友评论

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

红薯
2009/12/11
1K
4
Python模拟登陆 —— 征服验证码 3 CSDN

CSDN使用了spring的webflow 这个隐藏参数可以理解成每个需要登录的用户都有一个流水号。只有有了webflow发放的有效的流水号,用户才可以说明是已经进入了webflow流程。否则,没有流水号的情况...

seancheney
2017/09/29
0
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 2.9.2 发布,Spring 开发插件

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

oschina
2012/08/01
6.7K
12

没有更多内容

加载失败,请刷新页面

加载更多

CentOS配置Tomcat监听80端口,虚拟主机

Tomcat更改默认端口为80 更改的配置文件是: /usr/local/tomcat/conf/server.xml [root@test-a ~]# vim /usr/local/tomcat/conf/server.xml # 找到 Connector port="8080" protocol="HTTP/1......

野雪球
今天
5
0
《稻盛和夫经营学》读后感心得体会3180字范文

《稻盛和夫经营学》读后感心得体会3180字范文: 一代日本经营之圣稻盛和夫凭借刻苦勤奋的精神以及深植于佛教的商业道德准则,成为了“佛系”企业家的代表人物。在《稻盛和夫经营学》“领导人...

原创小博客
今天
3
0
java框架学习日志-5(常见的依赖注入)

依赖注入(dependency injection) 之前提到控制反转(Inversion of Control)也叫依赖注入,它们其实是一个东西,只是看的角度不同,这章详细说一下依赖注入。 依赖——指bean对象创建依赖于...

白话
今天
4
0
红外接收器驱动开发

背景:使用系统的红外遥控软件没有反应,然后以为自己接线错误,反复测试,结果烧坏了一个红外接收器,信号主板没有问题。所以自己开发了一个红外接收器的python驱动。接线参见https://my.os...

mbzhong
今天
2
0
ActiveMQ消息传送机制以及ACK机制详解

AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。 一. ActiveMQ消息传送机...

watermelon11
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部