当前位置: 首页 > 图文教程 > 网络编程 > JSP > 高级页面流(Page flow):嵌套、异常处理和 Global.app

JSP
Jsp常用技巧:图片验证码
JSP教程:JSP页面跳转的实战规则
JSP模板应用指南(上)
JSP由浅入深(3): 通过表达式增加动态内容
JSP由浅入深(5): Scriptlets和HTML的混合
JSP由浅入深(1): 熟悉JSP服务器
JSP由浅入深(12): 表单编辑
JSP由浅入深(11): 标记库
JSP由浅入深(10): Beans and Forms处理
JSP由浅入深(9): JSP Sessions
JSP由浅入深(8): JSP Tags
JSP由浅入深(6): JSP声明
JSP由浅入深(4): Scriptlets
JSP由浅入深(2): 第一个JSP
JSP由浅入深(7): JSP Directives
使用JSP + JAVABEAN + XML 开发的一个例子
快速建立Servlet和JSP的运行、调试和编译环境
利用iText在JSP中生成PDF报表
JSP避免Form重复提交的三种方案
Jsp连接Access数据库(不通过建立ODBC数据源的方法)

JSP 中的 高级页面流(Page flow):嵌套、异常处理和 Global.app


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-03   浏览: 549 ::
收藏到网摘: n/a

基本页面流框架能够为Web项目的一组页面集中管理导航状态和逻辑。尽管这比以往的Web开发模式有了明显的进步,但随着导航逻辑遍布各个页面、状态被存储在众多会话对象当中,某些更高级的页面流特性可以使您的项目更加出色和强大。

本文假定读者熟悉如何在WebLogic Workshop中构建和运行页面流。文中将会介绍三个特性:嵌套、声明性异常处理、Global.app。

嵌套

默认情况下,在一个新页面流中执行动作会导致当前页面流失效,这使得您可以为项目的不同部分创建独立的控制器,并最小化了每次用户会话需要保存的数据量。每个页面流管理它自己的状态和逻辑。在WebLogic Workshop IDE中,将控制权交给另外一个页面流用一个代表外部页面流的暗淡的终端节点表示。


想要更深入地了解高级页面流?请下载 本文附带的作者示例应用。
页面流嵌套使开发人员可以更好地将项目分解成独立的、自包含的功能块。它的核心功能是把当前页面流暂时放在一边,并将控制权交给另外一个页面流,该页面流将来会返回到原来的页面流。

什么时候应该使用页面流嵌套呢?当执行以下任务时嵌套十分有用:

  • 从用户那里搜集用于当前页面流的数据
  • 允许用户改正错误,或在执行特定动作的过程中提供额外信息
  • 为当前页面流中的数据提供另外一种显示视图
  • 显示在当前页面流中有用的用户信息(例如,帮助窗口)
让我们从一个简单的例子开始。在这个场景中,用户被要求选择一种颜色并根据选定的颜色被重定向到不同的页面。如果没有嵌套,页面流(/noNesting/noNestingController.jpf)可能是这样的:


如果颜色选择的部分更为复杂(比如在继续之前需要一个确认过程),就可以采用一个嵌套页面流来替代chooseColor.jsp,它同样可以满足要求(位于/simpleNesting/simpleNestingController.jpf):

嵌套页面流的一个重要特性是它可以替代页面的许多工作。嵌套页面流可以启动动作,甚至可以进行“post”,或者用表单进行初始化。通常,总是可以用嵌套页面流来替代页面。以下是该嵌套页面流的流程视图/chooseColor/chooseColorController.jpf:

该页面流允许用户选择一种颜色,请求确认,然后在原来的页面流上启动一个动作。该页面流出于激活状态时,原来的页面流被保存在用户会话中(位于堆栈中)。当该页面流结束时,被保存的原页面流上的“chooseRed”或“chooseBlue”动作将被激活。

创建和使用嵌套页面流是相当简单的。页面流向导提供了一个“make this a nested page flow”选项,它可以用类一级的注解@jpf:controller将新页面流定义为嵌套页面流:

/**

* @jpf:controller nested="true"

*/

public class chooseColorController extends PageFlowController