ADF区域任务流:返回值策略实现

5星 · 超过95%的资源 需积分: 14 5 下载量 117 浏览量 更新于2024-07-25 收藏 736KB PDF 举报
"ADF框架资料,重点讨论了ADF Task Flow在Controller层的应用,以及如何在ADF区域中实现返回值策略" 在Oracle JDeveloper 11版本中,ADF Task Flow引入了一个增强的功能,使得Controller层的处理更为灵活。ADF Task Flow超越了传统的JSF Flow,不仅能够链接到其他JSF页面,还能与事件或另一个ADF Task Flow交互。Task Flow分为有界和无界两种类型,各自有不同的应用场景和特性。 对于有界Task Flow,它具有明确的开始和结束,通常用于封装一组相关的UI操作和业务逻辑。在特定场景下,例如通过ADF区域(Region)调用执行的有界Task Flow,其退出时可能需要返回值。然而,默认情况下,ADF区域并不支持直接返回值,因为它们不需要显式的退出行为。 本文由Oracle Corporation的Frank Nimphius撰写,探讨了一种解决办法,即如何在ADF区域任务流退出时实现返回值。作者建议使用共享上下文Bean作为参数传递给有界Task Flow,类似于DynamicTabShell模板中的用法。这种方法允许在任务流完成时,通过共享Bean传递数据回调到调用它的区域。 具体实现步骤包括: 1. 创建一个共享上下文Bean,用于存储返回值。 2. 在有界Task Flow中,当用户执行完操作(如创建新部门)后,将结果保存到共享Bean。 3. 在退出活动(Return Activity)中,利用这个Bean将值传递回父视图。 4. 父视图检测到任务流的退出,并根据退出状态(提交或回滚)进行相应的处理,例如刷新数据迭代器或显示确认信息。 这个技术示例展示了在ADF环境中,尽管ADF区域本身不提供直接的returnValues属性,但开发者可以通过巧妙的设计和利用共享上下文机制,仍然可以实现数据的返回和交互。这扩展了ADF Task Flow的使用范围,使得在区域内的复杂业务逻辑处理更加便利。 请注意,由于ADF代码角系列文档并非正式的Oracle支持文档,因此示例可能存在潜在的错误或不兼容性,任何问题应提交到OTN论坛的JDeveloper板块寻求帮助。在实际项目中应用这些示例时,需要根据项目的具体需求和当前的ADF版本进行适当的调整和测试。