当前页面: 开发资料首页 → J2EE 专题 → 使用Webflow组件创建Web应用(一)-初探流
使用Webflow组件创建Web应用(一)-初探流
摘要: 使用Webflow组件创建Web应用(一)-初探流
内容:
摘要:Webflow体系属于BEA WebLogic Portal框架。在本文中,Brian Pontarelli and Grant Zemont将概述BEA Webflow的主要组成部分,并通过一个简单的Webflow应用,体会Webflow在Web应用开发中的最佳体验
- 第一部分:初探流
Webflow是BEA WebLogic Portal框架的核心部分。BEA WebLogic Portal提供了用户管理、商业事件,角色授权及活动管理等。在创建Web应用时,通过BEA WebLogic Portal的Webflow体系可将显示逻辑和背后的商业逻辑相分离。
模型-视图-控制(MVC2)模式是Webflow的基础架构。Webflow的作用主要相当于控制器,同时也提供基本的模型,也包括用来做视图的标签库。不同于其他控制器体系的是,Webflow更象一套工作流系统。它可以将多个商业逻辑类相连接并支持分支。它基于类似Struts中的事件管理,但提供了更为强大的链接和分支功能。
Web应用可使用Webflow作为中介创建事件,逻辑和站点流转。Webflow的”流”开始于视图节点(JSP),然后经过零或多个类(事件管理被称为输入处理器),直到另外一个视图节点被触发。这使Webflow成为创建Web应用的强大工具。
- Webflow的主要特点:
。基于组件架构的可复用代码;前台,中间层和后台均有标识。
。遵循J2EE规范
。内置表单验证
。分离前台和后台开发人员职责
现在开始体会各个构件,然后讨论Webflow开发过程中一些领悟。
注意:你可以在资源附录中下载到本文的源代码。
- Webflow组成
一个Webflow全部由节点组成。一个节点是Web应用对象的抽象组件。节点之间通过转移(事件)相互连接。例如一个简单的Webflow可以是:
原发JSP->输入处理器->目标JSP
每个箭头在Webflow体系中相当于事件。可以说,一个Webflow用一连串已连接的节点来表达Web应用中的逻辑流。下面将简要介绍组成Webflow框架的各种节点和其他一些概念。我们不想做BEA现有文档的翻版。你可以在BEA的官方站点翻阅关于这些概念更为深入的介绍(见资源附录)。
Presentation(视图)节点
视图节点是表示用户和Web应用交互的部分。比如 JSP,HTML,WML或serverlts.
InputProcessor(输入处理机)节点
这些节点是实现了InputProcessor接口的Java类。因此,输入处理节点必须实现下面的方法:
<table style="TABLE-LAYOUT: fixed" cellSpacing=0 borderColorDark=#ffffff cellPadding=4 width="98%" align=center bgColor=#e6e6e6 borderColorLight=#009ace border=1>
<tr>
<td style="WORD-WRAP: break-word">public Object process(HttpSerlvetRequest request, Object requestContext) throws ProcessingException</td></tr></table>
HttpServletRequest对象就是从客户端发送到WebLogic应用服务器的请求。此请求产生于视图节点,而早于InputProcessor节点。在上面的Webflow简单示例中,初始JSP中的form或anchor标记产生的请求传递至InputProcessor。此requestContext是此请求的唯一标识。
Pipelines(管道流)和PipelineComponent(管道流组件)节点
PipelineComonentS执行涉及业务流程的特定任务,他们可以相互关联。多个管道流组件可以组成某单一的管道流。管道流是单线的,并不支持分支。关联管道流可以保证所有的组件完全执行成功,否则事务回滚。PipelineComonentS包含的业务逻辑可能应用到企业级程序中的复杂Web应用,然后载入BEA WebLogic的企业JavaBeans(EJB)容器中。PipelineComonentS实现了PipelineComonent接口。因此,PipelineComonentS必须实现下面的方法:
此PipelineSession机制可用来实现Web应用中的InputProcessor和企业应用中的PipelineComponenets的交互。RequestContext是通过InputProcessorS传递过来的同一个标识。
名字空间(Namespaces)
名字空间允许开发人员将一个Web应用分解为多个Webflows。每个Webflow有他自己的名字空间,并且不可嵌入。通常,名字空间根据业务创建。比如,在一个典型的电子商务站点,开发人员可以为在线目录,轮廓管理,结算和定单查询创建各自的名字空间。
事件
事件可以认为是从一个节点到另外一个节点的转移,也是Webflows与pipelines之间的转移。当一个节点完成它的工作时候返回一个事件,Webflow系统由此事件判断调用下一个节点。视图节点产生事件的方式可以为提交,超链或任何一种可以对服务器发送请求的方法。InputProcessor节点可以通过过程方法返回的值产生事件。他们也可以通过抛出异常产生异常事件。这两种由InputProcessor产生的事件类型都可以由Webflow接收并选择下一个节点。
E-Business控制中心
E-Business控制中心(EBCC)是用来创建Webflows和管理BEA WebLogic Portal程序的主要图形用户界面(GUI)程序。在EBCC中,开发人员可以组织联合JSP页面,PipelineComponentS和InputProcessor类。它们也可以执行有关BEA WebLogic Portal的其他任务,比如用户管理和交易。在本文中,我们仅关注EBCC中Webflow的创建和管理。
在EBBC中,一些XML文件贮存了一个Webflow的一些信息。尽管开发人员不以直接的方式对它们进行编辑,最好还是知道以下几个Webflow文件:
工程文件:<工程名>.eaprj,这个是Webflow应用的主要工程文件。
.wf文件:<名字空间>.wf,包含一个Webflow名字空间的主要信息,包括节点之间的转移/事件。
.wf.ui和.ui文件包含Webflow组件最终如何在EBCC中展示的信息。
.wfx文件允许对Webflow进行扩展,这超出了本文讨论的范围。
- 关于翻译作者:
<table style="TABLE-LAYOUT: fixed" cellSpacing=0 borderColorDark=#ffffff cellPadding=4 width="98%" align=center bgColor=#e6e6e6 borderColorLight=#009ace border=1>
<tr>
<td style="WORD-WRAP: break-word">Kunmao ,java 爱好者,可以通过catflame@msn.com 与他联系.也可以点击http://www.matrix.org.cn/user_view.asp?username=kunmao查看他的个人信息.</td></tr></table>
Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd, scwcd
↑返回目录
前一篇: 用JSP 2.0开发Web应用程序
后一篇: Servlet容器工作原理(四)