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

JSP
客户端界面中可视化的实现树形框架的设计
Win2000下JBoss开发环境配置
调试处理系统核心文件
Matrix java 大讲坛 之 可用性与人机界面
JMX调试----第三方工具使访问更加容易
用BSF如何在Java中嵌入javascript以及如何在javascript中
再次提醒\" 请不要做浮躁的人\"
从Coding Fan到真正的技术专家(cjsdn)
数据库BEAN:RESIN连接池
基于Java的Web服务器工作原理(一)
XDE中模式驱动的设计与开发(三)
页面流(Page flow)表单验证
高级页面流(Page flow):嵌套、异常处理和 Global.app
请不要做浮躁的人(ZT-必读)
解决日期选择问题,一劳永逸(使用Decorator模式实现日期选择组件)(二)
解决日期选择问题,一劳永逸(使用Decorator模式实现日期选择组件)(三)
解决日期选择问题,一劳永逸(使用Decorator模式实现日期选择组件)(四)
解决日期选择问题,一劳永逸(使用Decorator模式实现日期选择组件)(五)
EJB技术之旅(一)
MVC渐行渐进(二)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-03   浏览: 528 ::
收藏到网摘: 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