- 浏览: 3500409 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 1750SOA 已经不是单纯技术问 ... -
Injecting Spring Beans into Java Servlets
2012-11-01 10:21 1934If you are working in a Java ... -
用 HttpServletResponseWrapper 实现 Etag 过滤器
2012-07-09 16:58 3757原文出处:http://blog.chenlb.com/200 ... -
Eclipse Indigo - Cannot install Android ADT Plugin
2012-02-29 01:17 3881When I try to install the And ... -
Eclipse Indigo - Cannot install Android ADT Plugin
2012-02-29 01:13 1986When I try to install the And ... -
[转]mybatis下的分页,支持所有的数据库
2011-07-21 13:21 14838大 家都知道,mybatis的自带分页方法只是逻 ... -
Java framework for text- & console-based forms?
2011-07-21 01:06 1709charva jcurses JNA , ... -
JNA(Java Native Access)学习入门
2011-07-21 01:04 22610Java Native Access 项目 在 ... -
使用IntrospectorCleanupListener 解决quartz引起的内存泄漏
2011-04-20 11:59 13362"在服务器运行过程中,Spring不停的运行的计划任 ... -
DBCP代码研读以及就数据库连接失效的解决
2011-03-31 11:03 3761问题 网上很多评论说DBCP有很多BUG,但是都没有指明是什 ... -
ContextLoaderListener
2010-12-06 15:58 8459(1) org.springframework.web.c ... -
Servlet3.0新功能: 异步处理
2010-12-06 15:22 3176J2EE 6和Glassfish 3V正式发 ... -
Servlet3.0引入的新特性
2010-12-06 15:20 3054Servlet3.0规范的新特性主要是为了3个目的: ... -
100個節點上運行群集亞馬遜EC2上Hazelcast
2010-12-03 23:59 3315本文的目的,適是给妳湮示的細節集群的100個節點。此湮示記錄, ... -
Spring Properties Reloaded
2010-12-02 14:54 4369Spring Properties Reloaded Som ... -
为spring2.5中的jpetstore增加perf4j监控
2010-09-02 13:51 2639perf4j是一款类似于log4j的性能检测工具. 它 ... -
语义网的学习资源大汇集(备忘)
2010-06-23 22:48 1732网上资源 http:/ ... -
使用 JOLAP 实现复杂分析查询
2010-06-06 13:42 1962Shashank Tiwari 在本文中对 ... -
HTML5 Canvas for Internet Explorer
2010-06-04 21:16 1856Canvascape http://www.benjoff ... -
大型网站架构演变和知识体系
2010-06-01 23:47 1959架构演变第一步:物 ...
相关推荐
通过这个"CartApp3"示例,开发者可以学习如何利用Spring WebFlow构建复杂的Web应用程序,理解其流程管理机制,以及如何将业务逻辑与视图交互结合在一起。这有助于提升构建动态、流程导向型应用的能力,并对Spring...
13. **实战案例**:提供实际项目中的示例,演示如何使用Spring WebFlow构建一个完整的Web应用。 14. **最佳实践**:给出使用Spring WebFlow的最佳实践,帮助开发者避免常见问题并提升代码质量。 通过深入阅读这本...
书中重点讲解Web流、流定义语言、流执行、流的测试以及自定义扩展等精髓内容,并结合使用Spring WebFlow 1开发的实例来向读者说明如何将其实际应用到项目中。尤其弥足珍贵的是,作者从框架设计者角度深入阐述了...
<dependency org="org.springframework.webflow" name="spring-webflow" rev="2.4.0"/> ``` ##### 1.7 夜间构建和里程碑发布 为了使用Spring Web Flow的夜间构建或里程碑版本,可以通过在Maven配置文件中添加如下...
此外,书中的示例和最佳实践将有助于开发者在实际项目中高效地应用Spring Web Flow,提升web应用的架构质量和用户体验。该书还可能涵盖了异常处理、国际化、测试和调试等方面的内容,帮助开发者全方位地理解和掌握...
Spring Web Flow 2.0 购物车示例,资源来自http://www.cnblogs.com/xwdreamer/archive/2011/11/10/2296939.html.建议对照文章学习
在这个“spring webflow 例子”中,我们将深入探讨Spring Web Flow如何帮助我们构建一个网上书店应用。 首先,Spring Web Flow的核心概念包括流程定义、状态和转换。流程定义是整个流程的蓝图,它由一系列状态...
DOCTYPE webflow PUBLIC "-//SPRING//DTD WEBFLOW//EN" "http://www.springframework.org/dtd/spring-webflow.dtd"> <webflow id="bookflight" start-state="obtainTripInfo"> ``` 在这个示例中,`bookflight`...
在SWFDemo项目中,你可以找到一个简单的Spring Web Flow示例,通过这个例子,你可以学习如何配置和使用这个框架,从而更好地掌握Spring Web Flow的核心特性和使用技巧。记得通过博文链接...
本教程分析了 Spring Web Flow 2.0 的技术要点,并且通过创建一个示例应用程序,展示了 Spring Web Flow 2.0 的基本知识。 开始之前 关于本教程 本教程通过一个简化的购物车应用,介绍了如何使用 Spring Web Flow ...
### Spring Webflow 入门基础 #### 购物车用例 首先,我们通过一个购物车用例来深入理解Spring Web Flow的应用场景及其优势。购物车作为一个典型的电子商务应用场景,涉及用户选择商品、查看购物车内容、确认订单...
在`spring-webflow-2.0.8.RELEASE`这个压缩包中,你将找到Spring Webflow 2.0.8版本的所有相关资源,包括库文件、文档和可能的示例项目。这些资源可以帮助你搭建开发环境,理解其工作原理,并进行实践操作。 总的来...
### Spring WebFlow 从 1.0 升级到 2.0 的核心知识点 #### 一、流定义语言的变化 ##### 1.1 引言 Spring WebFlow (SWF) 是一款强大的流程管理框架,它使得创建复杂的Web应用程序变得更为简单。随着技术的发展,从 ...
项目实例通常包含完整的代码示例,展示了如何将Spring Web Flow应用到实际项目中。这些例子可以帮助你理解如何配置和使用Spring Web Flow,以及如何解决实际开发中的问题。 10. **学习资源** Spring Web Flow的...
通过分析和运行这个示例,你将了解Spring Web Flow如何组织和控制用户交互,以及如何与Spring MVC框架协作。 为了深入理解Spring Web Flow,建议你逐步研究项目的源代码,查看流程定义、控制器实现、视图配置等部分...
《Spring Web Flow 2 Web Development》一书深入探讨了Spring Web Flow框架的使用与实践,旨在帮助开发者利用Spring框架的强大功能构建高效、可扩展的Web应用程序。本书由Sven Lüppken和Markus Stäuble共同撰写,...
- **webflow-javaConfig.zip**:这个压缩包包含了一个使用Java配置实现的SWF示例,你可以通过解压、构建和运行来观察其工作流程。 - **webflow-xml.zip**:这个示例则展示了如何通过XML配置文件定义和管理Flow。 ...
通过对上述新特性的详细介绍和示例应用的分析,我们可以看到Spring Web Flow 2.0 在简化复杂交互逻辑方面的强大能力。无论是对于初学者还是经验丰富的开发者来说,掌握这一工具都将极大提升他们在Web开发领域的能力...
3. **示例应用**:提供了实际的代码示例,演示了如何在项目中应用Spring WebFlow。 **使用场景** Spring WebFlow特别适合于需要多步骤用户交互的场景,例如购物车结账流程、用户注册、表单提交等。通过它,开发者...
<webflow> <flow id="booking"> <!-- Action configuration --> <!-- More states and transitions... --> </flow> </webflow> ``` 在这个例子中,流程开始于`selectFlight`视图,用户选择航班。...