- 浏览: 3475623 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wanglf1207:
EJB的确是个不错的产品,只是因为用起来有点门槛,招来太多人吐 ...
weblogic-ejb-jar.xml的元素解析 -
qwfys200:
总结的不错。
Spring Web Flow 2.0 入门 -
u011577913:
u011577913 写道也能给我发一份翻译文档? 邮件437 ...
Hazelcast 参考文档-4 -
u011577913:
也能给我发一份翻译文档?
Hazelcast 参考文档-4 -
songzj001:
DbUnit入门实战
spring webflow示例非规范要点说明文档
本文档着重说明示例中struts与webflow整合的关键点。
1. 配置文件说明:
1.1 web.xml
webflow基于spring框架,此处使用一般spring与struts整合方式,引入spring框架
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/webflow-config.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
1.2 struts-config.xml
formbean使用SpringBindingActionForm
<form-bean name="actionForm" type="org.springframework.web.struts.SpringBindingActionForm"/>
global-forwards提供给webflow跳转关系
action-mapping使用保证struts说明,类型使用FlowAction
<action path="/flowAction"
name="actionForm"
scope="request"
type="org.springframework.webflow.executor.struts.FlowAction"/>
1.3 webflow-context.xml(spring配置文件)
<bean id="actionForm" class="...Action" />指定action的class文件
注册webflow
<flow:executor id="flowExecutor" registry-ref="flowRegistry"/>
<!-- Creates the registry of flow definitions for this application -->
<flow:registry id="flowRegistry">
<flow:location path="/WEB-INF/gateway.xml"/>
</flow:registry>
1.4 gateway.xml(webflow配置文件)
流程
<start-state idref="xxx" /> <!-- 表明webflow的开始-->
<view-state id="" view=""><!-- view="" 指向struts配置文件global-forwad -->
<render-actions>
<action bean="tvgwformAction" method="setupForm" /> <!-- setupForm对应action中构造方法-->
</render-actions>
<transition on="pay" to="processChooseFormSubmit" /> <!-- on="XXX" 接收页面提交的_eventId_XXX-->
<transition on="cancel" to="cancel" /> <!-- to="XXX" 需对应跳转view-state或action-state的id-->
</view-state>
<action-state id="processChooseFormSubmit">
<action bean="tvgwformAction" method="bindAndValidate" /> <!-- bindAndValidate对应strust的validator-->
<transition on="success" to="queryAccount" />
<transition on="error" to="simupay" /> <!-- success&error 对应action方法的result返回值-->
</action-state>
<action-state id="queryAccount">
<action bean="tvgwformAction" method="queryAccount" /> <!--method对应action方法 -->
<transition on="success" to="gwForm" />
<transition on="error" to="error" />
</action-state>
<end-state id="resultForm" view="result" /> <!-- 表明webflow的结束-->
2. action类说明
2.1 action类继承自org.springframework.webflow.action.FormAction
2.2 构造方法需要设置以下参数
public TvGatewayFormAction(){
setFormObjectName("tvGateway"); //设置使用formbean的名字
setFormObjectClass(TvGateway.class); //设置使用formbean的类
setFormObjectScope(ScopeType.FLOW); //设置生命周期
setValidator(new TvGatewayValidator()); //设置验证方法
}
!注意:在验证方法中提供supports方法,注入formBean类
public boolean supports(Class clazz) {
return clazz.equals(BirthDate.class);
}
2.3 action向页面传递对象
可以使用context.getRequestScope().put(...)和context.getRequestScope().put(...)两种(实现struts request.setAttribute功能)
使用context.getRequestScope().put(...),如果对象传递目的地是end-state,页面可以接收到对象的值,如果传递目的地是view-state则不能接收到
原因:在swf 1.0中缺省alwaysRedirectOnPause开启,意味着,view在重定向之后总是会被收回,也就是说,request会在下一个请求到来时被刷新;
因此,使用context.getRequestScope().put(String, object)代替
2.4 view-state to action-state
为保证action中getFormObject(context)可取得页面提交数据,在webflow配置文件中每次从view-state跳转到action-state都必须
先调用validator的bindAndValidate,主要目的是使用validator中的support将formBean对象“注入”,从而保证formBean对象在整个flow流程中的一致性。
3. Jsp页面说明
3.1 页面显示action传递的对象可以采用<bean:write name.../> 或 ${XXX.xx }两种方法
3.2 webflow响应页面跳转是根据页面提交的_eventId_XXX对应的XXX确定的,
由于机顶盒界面不使用链接或点击事件做提交,使用javascript响应键盘事件,用js函数处理提交,为区分不同事件产生不同跳转,采用如下方法:
在javascript中创建html页面元素的方法
在页面设置一个不可见元素
<span id="_eventId"/>
在javascript脚本中添加需要创建的元素
document.getElementById("_eventId").innerHTML=<...>;
<...>可如所示 <input type=\"hidden\" name=\"_eventId_cancel\" value=\"Abandon\"/>(临时生成不同_eventId_XXX)
发表评论
-
说明SOA监管(SOA Governance)实例(收录备查)
2012-12-19 11:35 1717SOA 已经不是单纯技术问 ... -
Injecting Spring Beans into Java Servlets
2012-11-01 10:21 1912If you are working in a Java ... -
用 HttpServletResponseWrapper 实现 Etag 过滤器
2012-07-09 16:58 3711原文出处:http://blog.chenlb.com/200 ... -
Eclipse Indigo - Cannot install Android ADT Plugin
2012-02-29 01:17 3840When I try to install the And ... -
Eclipse Indigo - Cannot install Android ADT Plugin
2012-02-29 01:13 1946When I try to install the And ... -
[转]mybatis下的分页,支持所有的数据库
2011-07-21 13:21 14793大 家都知道,mybatis的自带分页方法只是逻 ... -
Java framework for text- & console-based forms?
2011-07-21 01:06 1681charva jcurses JNA , ... -
JNA(Java Native Access)学习入门
2011-07-21 01:04 22533Java Native Access 项目 在 ... -
使用IntrospectorCleanupListener 解决quartz引起的内存泄漏
2011-04-20 11:59 13295"在服务器运行过程中,Spring不停的运行的计划任 ... -
DBCP代码研读以及就数据库连接失效的解决
2011-03-31 11:03 3731问题 网上很多评论说DBCP有很多BUG,但是都没有指明是什 ... -
ContextLoaderListener
2010-12-06 15:58 8429(1) org.springframework.web.c ... -
Servlet3.0新功能: 异步处理
2010-12-06 15:22 3132J2EE 6和Glassfish 3V正式发 ... -
Servlet3.0引入的新特性
2010-12-06 15:20 3032Servlet3.0规范的新特性主要是为了3个目的: ... -
100個節點上運行群集亞馬遜EC2上Hazelcast
2010-12-03 23:59 3297本文的目的,適是给妳湮示的細節集群的100個節點。此湮示記錄, ... -
Spring Properties Reloaded
2010-12-02 14:54 4346Spring Properties Reloaded Som ... -
为spring2.5中的jpetstore增加perf4j监控
2010-09-02 13:51 2614perf4j是一款类似于log4j的性能检测工具. 它 ... -
语义网的学习资源大汇集(备忘)
2010-06-23 22:48 1694网上资源 http:/ ... -
使用 JOLAP 实现复杂分析查询
2010-06-06 13:42 1928Shashank Tiwari 在本文中对 ... -
HTML5 Canvas for Internet Explorer
2010-06-04 21:16 1834Canvascape http://www.benjoff ... -
大型网站架构演变和知识体系
2010-06-01 23:47 1919架构演变第一步:物 ...
相关推荐
spring webflow
书中重点讲解Web流、流定义语言、流执行、流的测试以及自定义扩展等精髓内容,并结合使用Spring WebFlow 1开发的实例来向读者说明如何将其实际应用到项目中。尤其弥足珍贵的是,作者从框架设计者角度深入阐述了...
Spring Web Flow 2.0 购物车示例,资源来自http://www.cnblogs.com/xwdreamer/archive/2011/11/10/2296939.html.建议对照文章学习
本教程分析了 Spring Web Flow 2.0 的技术要点,并且通过创建一个示例应用程序,展示了 Spring Web Flow 2.0 的基本知识。 开始之前 关于本教程 本教程通过一个简化的购物车应用,介绍了如何使用 Spring Web Flow ...
购物车用例 什么情况下可以使用 Spring Web Flow? 配置 Spring Web MVC ...在购物车示例应用中配置 Spring Web Flow 用 Unified EL 实现业务逻辑 用 subflow 实现添加商品到购物车功能 global transition 简介
Spring Web flow 的专业介绍,对spring mvc也有详细的介绍和示例,非常值得一读
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是...
Spring Web Flow 库为 Spring 框架提供了 Web Flow 功能。 Web 流使用简单的 XML 定义捕获 Web 应用程序(部分)中的页面流。 要使用 Spring Web Flows,您的类路径中需要以下依赖项: commons-logging 1.0.3 或更...
Spring Web Flow OptForRepl示例有关如何将使用/集成到某些应用程序平台的。 ##建造首先克隆Git存储库,然后切换到创建的目录: $ git clone ...
开放时间开源项目管理该项目包含以下技术和框架: Spring WebFlow(Spring面Kong,Spring绑定,Spring js,Spring表达式) Hibernate/Hibernate验证器春天TX 弹簧DI Springjdbc Spring JPA数据碧玉报告JSF 2.2...
Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。 ###mybatis MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集...
这是使用spring 5功能性Web框架和spring boot 2进行React式MicroService的示例。 该服务有一个。 该服务提供的API可以从地址获取地理位置以及日出和日落时间。 Scenario : Get Location Given I've an address ...
snakerflow-spring-boot-starter 本项目是基于开源SnakerFlow工作流引擎,将其和springboot进行整合成为一个能够快速工程应用的轻量级工作流引擎组件,本着轻量、简单、灵巧理念设计,定位于简单集成,多环境支持。 ...
这里需要说明的就是,这个Demo默认采用的是h2内存数据库,如果想用你自己的数据库,就需要修改web应用WEB-INF/classes目录下的db.properties。然后,按上面说的,把database里的create文件夹里的数据库文件导入你...
6.5 Web Flow 6.5.1 开始和结束状态 6.5.2 操作状态和视图状态 6.5.3 流执行事件 6.5.4 流的作用域 6.5.5 数据绑定和验证 6.5.6 子流程和会话 6.6 过滤器 6.6.1 应用过滤器 6.6.2 过滤器的类型 6.6.3 过滤器的功能 ...