首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

通用页面流程框架及实例介绍(2)当今现有的页面导航和页面流程技术

通用页面流程框架及实例介绍(2)当今现有的页面导航和页面流程技术

当今现有的页面导航和页面流程技术当今绝大多数的 MVC 框架都具有页面导航的功能,但并不是所有的 MVC 框架都具有页面流程,而通用的页面流程,则目前只有 IBM BTT 产品才具有。下面是常用最流行的 MVC 框架页面导航以及页面流程技术介绍和分析:
Struts 页面导航Apache Struts MVC 框架使用非常广泛,但 Struts 中没有页面流程的概念和组件。 Struts 的 Web 应用中,为了在 Struts 里面实现页面流程,框架提供了 MVC 的 Action(动作)和 View(视图)来实现页面导航。在 Struts 中,一个 Action 和一个指定的请求 URL 进行绑定,只有当请求从那个 URL 过来的时候,Action 才会被执行,这里的 Action 是业务操作。在 Action 业务操作执行过程中,会进行一系列的处理,并且会返回处理结果,Struts 导航框架会根据这个 Action 处理的返回结果,导航到下一个合适的视图显示结果。这种方式简单、有效,指定两个 View,通过 Action 串成两个 View 之间的导航。所以要在 Struts 中实现多步控制的页面流程,需要多个 Action,并把多个 View 形成链,形成一条多步的页面流程。
这是当前常用的页面导航方法,特点是简单、有效。但是它具有一个很大的缺陷:就是只能看到 Action 操作和 View 视图,从 struts-config.xml 配置文件定义中不能清晰的看到页面流程。就像在地图中您不能清晰地看见北京到广州的路线,而只能看见北京到广州途中的所有各个城市,任何两个城市之间的路线。这种定义灵活性强,但组织性不清晰。而且复用性不好,只能在 Action 和 View 之间复用,而不能像页面流程一样复用子页面流程。
JSF 页面导航JSF 是 Web 组件的框架,是 JSP 在页面的基础上而不是请求的基础上使用事件驱动的方法进行页面导航,使得每个页面和它的后退控制器逻辑保持一致。但总的来说,JSF 的页面导航与 Struts 一样,是两个页面之间的导航,没有一个流程的概念。但 JSF 作为标准,具有很强的扩展性,Spring Web Flow 在 JSF 基础上扩展支持以 Web Flow 页面流程的方式进行页面导航。 Spring Web Flow 为 JSF 提供了一个定义良好的、能跨越多个页面和不同路径、统一流程生存周期管理的页面流程。
Spring Web Flow 页面流程Spring Web Flow 是一个基于 Spring 的开源 Web 页面流程框架,是 2006 年产生并逐渐流行的一个开源 Web 页面流程框架。 Spring Web Flow 是 Web 页面导航的流程化定义和引擎,这个页面流程的生存周期要比 Struts 和 JSF 的基于请求的、或基于事件的单一两个页面之间的导航长,但是却比一个 HTTP 会话要短。它允许您使用一个简单清晰的流程化方法体现您的页面流程,并且随时重用。 Spring Web Flow 页面流程提供一下优点:
  • Web 应用中的页面流程可以通过 Web 流程的定义(XML 文件或者 Java 类)清晰的展现出来。
  • Web 流程被设计成自包含的。这就允许您把您的应用中的一部分看作是一个模块,这样就可以在多种场合重用它。
  • Web 流程捕获任何合理的页面流程总是使用同种技术。您不必被迫在特定的场合使用特定的控制器。
  • 最后,Web 页面流程是可以通过一个良好定义的契约使用。它具有一个清晰的,可观察的生存周期为您自动管理。通过简单配置,系统便会为您管理复杂的逻辑,非常容易使用。
Spring Web Flow 的工作原理就是状态机机制,Web 页面流程是由一组状态(states)的集合组成,一个状态是页面流程中发生某事的一个点,每个状态都有一个或更多的转变(transitions)用来移动到下一个状态。一个转变是由一个事件(event)触发的。
BTT 通用页面流程 – Generic Screen FlowBTT 通用页面流程,早在 10 年前就是 BTT 前端渠道建设及整合产品的一个重要组件,而前面介绍的 Spring Web Flow 则是 2006 年才发布的 1.0 版本。通过下面的进一步介绍技术细节,读者会发现 Spring Web Flow 的思路和 BTT Generic Screen Flow 框架很类似,页面流程通过通用页面流程定义 XML 文件清晰的展现出来。只不过后者更加强大,具有下面更多的优点:
  • BTT 通用页面流程是通用的页面流程框架,支持 Web 页面流程、Java 富客户端页面流程、以及手机客户端页面流程,而且用户可以进行扩展支持其他前端渠道的页面流程。
  • BTT 通用页面流程采用树形的数据结构,具有很好的性能,被全世界一百多家对性能要求非常严格的企业所采用。关于 BTT 的数据结构是另外一个话题,本文不进行深入讨论。
返回列表