如何移植BEA Webflow 应用到Struts下?
【IT168 专稿】BEA提出了Webflow/Pipeline框架来替代Struts作为网络应用软件的开发框架。同Struts一样,Webflow也是基于MVC模式的框架之一,并且提供的功能也与其它基于MVC模式的框架几近相同。但是因为Webflow使用了BEA 和 WebLogic的私有库,所以以Webflow框架开发的应用程序只能在WebLogic应用服务器上运行,这就限制了其功能的开发。目前,许多IT组织已经意识了这一点,都渴望能够将在Webflow框架开发的应用软件移植到诸如Struts之类的开源框架中去,以此来提高应用程序的灵活性和可维护性。
本文就是专为那些计划或者正在移植Web应用软件的开发人员和系统构架人员所写,通过本文你可以了解到如何通过使用合理的软件开发工具(本文中提到了RAD)将基于Webflow框架开发的应用软件移植到Struts框架。为了更好的理解本文您需要熟悉JAVA编程, Struts框架以及RAD测试环境。
通过阅读本文,您将学会如何剖析WebLogic框架下开发的简单Web应用程序,并且逐渐掌握如何高效的将不同的组件移植到Struts。
剖析Webflow应用程序
正如Brian Pontarelli和 Grant Zemont所说的"Go with the Flow"(与流程搭配)(Java世界,2003.2),Webflow全部是由节点和抽象组件组成(这些抽象组件也就是Web应用程序中的对象)。节点通过事件连接起来:原始的JSP文件--〉输入处理器--〉目的文件。其中,每一个“--〉”都代表着Webflow系统处理的一次事件,那么把所有的节点连接起来就成为了一个Web应用程序的逻辑流程。因此,Webflow就是由这样的节点的组成的序列。
下面是一个BEA Webflow/Pipeline构架的典型Web应用程序,它有以下四个组件:
1.BEA为视图提供的标签库
2.管道组件和管道序列
3.输入处理器
4.Webflow应用程序接口和属性文件
Webflow 应用程序的核心是一个叫做Webflow.properties 的属性文件。它用于控制Web页面的显示以及控制与这些页面相关的商业逻辑的执行。该文件中记录了每一个JSP页面的一部分细节。
一般地,Webflow.properties文件记录每次转变的语法如下:
<origin>.[<event>][(<eventName>)]=<target>
下表描述了语句中各组成元素的所有有效值:

例如,login.jsp.button(createUser)= nextpage.jsp,这是webflow.properties 文件中典型的登陆页面的记录。目前的状态是login.jsp,事件是一个名为createUser的按钮,结果状态是nextpage.jsp。
注意:这里并没有用到输入控制器和管道组件。在这个登陆页面里,表单标签通过WebFlowJSPHelper编程接口于下一个页面建立了URL。这个URL包含了页面的名称以及存储在webflow.properties文件当中与当前状态相匹配的事件。