GROUPSPACE如何使用IPC創(chuàng)建INTERPORTLET連接 |
發(fā)布時間: 2012/8/18 9:15:02 |
摘要
做為WebLogic Portal的一部分,Interportlet Communication (IPC) 是一種功能非常強大的框架。它讓軟件開發(fā)人員創(chuàng)建能對門戶應用程序中被觸發(fā)的各種事件做出發(fā)應的portlet。本文說明當事件在一個portlet中被觸發(fā)時,如何使用IPC創(chuàng)建一個應用程序框架來在另一個portlet中簡單產生HTML的鏈接。本文將特別關注作為BEA WebLogic Portal 9.2一部分的GroupSpace應用程序的特點。GroupSpace中的portlet允許用戶管理不同類型的協(xié)作內容。在這些portlet中,代表這些內容的URL鏈接通常被顯示在portlet的JSP頁面中。通過IPC,這些鏈接基于所表示的內容類型激活相應portlet中的特定動作。這個特性增強了用戶體驗,并且促進了門戶應用程序的整體聚合力。 盡管本文主要介紹這一特性的GroupSpace實現(xiàn),但對于在使用基于頁面流portlet的其他門戶應用程序中創(chuàng)建類似框架,本文給出的代碼示例也是很好的指導。 本文假定讀者基本了解以下WebLogic Portal和Java技術: Interportlet Communication (IPC) Portlet 開發(fā) 支持文件(backing file) Apache Beehive/Pageflows 特性描述 GroupSpace是一個協(xié)作性應用程序,其中包含若干個讓用戶管理各種內容類型的portlet。這些內容類型包括一些協(xié)作性元素,例如問題(Issue)、討論主題、GroupNote(富文本文件)和外部文檔。在很多這類portlet中,經常需要顯示這些內容條目的超鏈接。搜索portlet就是這種需求的一個例子。搜索結果包含一個由許多不同內容類型組成的列表。列表中的每一項都顯示為一個HTML鏈接。當點擊這些鏈接時,應用程序必須激活相應的portlet(例如,一個Issue鏈接應該激活Issues portlet),并且觸發(fā)一個頁面流動作,以顯示有關特定內容條目的詳細信息。 因為這些鏈接將被放置在許多portlet JSP頁面上,鏈接的URL生成被簡化了。使用一個定制的JSP標記可以很好地完成這件事。 最后,框架為添加響應新內容類型的新portlet提供了支持。對于底層的框架組件不需要額外的代碼。 實現(xiàn) 這種框架的最終目標是,JSP頁面開發(fā)人員能夠非常簡單地創(chuàng)建一個表示GroupSpace內容條目(例如Issue、GroupNote等)的URL鏈接。當用戶點擊這樣一個鏈接時,應用程序應該自動激活為顯示該內容類型詳細信息而設計的portlet。例如,一個代表GroupSpace Issue的URL鏈接應該激活Issue portlet,一個代表GroupNote的URL鏈接應該激活GroupNote portlet。問題復雜性在于創(chuàng)造一種方式來生成HTML錨標記的href,用來執(zhí)行確定相應portlet然后顯示關于特定內容條目詳細信息所需要的邏輯。 最基本的方法是從門戶PostbackURL開始。我將添加一些參數(shù)到這個URL,以指示一個GroupSpace鏈接被點擊過。我還將添加一些參數(shù)來惟一標識哪個內容條目被點擊(一個內容ID),以及其內容類型是什么(比如Issue或GroupNote)。當一個請求被提交到此URL,定義在portlet 支持文件中的lifecycle方法將開始運行。您可以向支持文件添加一些邏輯,以決定應該使用哪個portlet來處理請求。接下來,可以使用IPC觸發(fā)一個portlet正偵聽的定制事件。確認用于處理該內容類型的portlet將響應事件,運行一個指定的頁面流動作。這個動作最終將根據內容條目的惟一ID來顯示該內容條目的細節(jié)。 在這種框架實現(xiàn)中涉及到幾個組件。接下來的章節(jié)將描述每個組件,并給出代碼示例進行詳細解釋。代碼示例來源于GroupSpace應用程序。 本文出自:億恩科技【1tcdy.com】 |