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