GROUPSPACE如何使用IPC创建INTERPORTLET连接 |
发布时间: 2012/8/18 9:15:02 |
摘要
做为WebLogic Portal的一部分,Interportlet Communication (IPC) 是一种功能非常强大的框架。它让软件开发人员创建能对门户应用程序中被触发的各种事件做出发应的portlet。本文说明当事件在一个portlet中被触发时,如何使用IPC创建一个应用程序框架来在另一个portlet中简单产生HTML的链接。本文将特别关注作为BEA WebLogic Portal 9.2一部分的GroupSpace应用程序的特点。GroupSpace中的portlet允许用户管理不同类型的协作内容。在这些portlet中,代表这些内容的URL链接通常被显示在portlet的JSP页面中。通过IPC,这些链接基于所表示的内容类型激活相应portlet中的特定动作。这个特性增强了用户体验,并且促进了门户应用程序的整体聚合力。 尽管本文主要介绍这一特性的GroupSpace实现,但对于在使用基于页面流portlet的其他门户应用程序中创建类似框架,本文给出的代码示例也是很好的指导。 本文假定读者基本了解以下WebLogic Portal和Java技术: Interportlet Communication (IPC) Portlet 开发 支持文件(backing file) Apache Beehive/Pageflows 特性描述 GroupSpace是一个协作性应用程序,其中包含若干个让用户管理各种内容类型的portlet。这些内容类型包括一些协作性元素,例如问题(Issue)、讨论主题、GroupNote(富文本文件)和外部文档。在很多这类portlet中,经常需要显示这些内容条目的超链接。搜索portlet就是这种需求的一个例子。搜索结果包含一个由许多不同内容类型组成的列表。列表中的每一项都显示为一个HTML链接。当点击这些链接时,应用程序必须激活相应的portlet(例如,一个Issue链接应该激活Issues portlet),并且触发一个页面流动作,以显示有关特定内容条目的详细信息。 因为这些链接将被放置在许多portlet JSP页面上,链接的URL生成被简化了。使用一个定制的JSP标记可以很好地完成这件事。 最后,框架为添加响应新内容类型的新portlet提供了支持。对于底层的框架组件不需要额外的代码。 实现 这种框架的最终目标是,JSP页面开发人员能够非常简单地创建一个表示GroupSpace内容条目(例如Issue、GroupNote等)的URL链接。当用户点击这样一个链接时,应用程序应该自动激活为显示该内容类型详细信息而设计的portlet。例如,一个代表GroupSpace Issue的URL链接应该激活Issue portlet,一个代表GroupNote的URL链接应该激活GroupNote portlet。问题复杂性在于创造一种方式来生成HTML锚标记的href,用来执行确定相应portlet然后显示关于特定内容条目详细信息所需要的逻辑。 最基本的方法是从门户PostbackURL开始。我将添加一些参数到这个URL,以指示一个GroupSpace链接被点击过。我还将添加一些参数来惟一标识哪个内容条目被点击(一个内容ID),以及其内容类型是什么(比如Issue或GroupNote)。当一个请求被提交到此URL,定义在portlet 支持文件中的lifecycle方法将开始运行。您可以向支持文件添加一些逻辑,以决定应该使用哪个portlet来处理请求。接下来,可以使用IPC触发一个portlet正侦听的定制事件。确认用于处理该内容类型的portlet将响应事件,运行一个指定的页面流动作。这个动作最终将根据内容条目的惟一ID来显示该内容条目的细节。 在这种框架实现中涉及到几个组件。接下来的章节将描述每个组件,并给出代码示例进行详细解释。代码示例来源于GroupSpace应用程序。 本文出自:亿恩科技【www.enkj.com】 |