簡體   English   中英

門戶/門戶編程-門戶鏈接/頁面流

[英]Portal/portlets programming - portlet linking/page flow

我正在編寫我的第一個基於Portlet的應用程序(適用於liferay,但解決方案應與容器無關),並且我想知道人們如何解決為用戶提供鏈接,從而“引導”到不同的Portlet(可能在門戶網站的不同“頁面”上) )。

雖然您可以在portlet中輕松地擁有不同的查看模式,但是如何鏈接到另一個portlet並(也可以)傳遞參數呢?

我並不是在談論Portlet之間的簡單通信,這才是我真正感興趣的頁面流。

示例:您的頁面A帶有顯示新聞列表的portlet。 然后,您已按照配置的方式創建了頁面B,我希望顯示一個新聞項(例如,圍繞它的不同portlet)

是否有通用解決方案鏈接到頁面B,並告訴news-Detail-Portlet它應顯示項目XYZ?

快速而骯臟的解決方案是通過新聞列表-portlet的編輯模式配置目標鏈接。 但這有幾個缺點:-復雜的Portlet可能具有多個目標URL,這導致門戶網站管理員需要大量配置工作-這些URL可能不遵循允許簡單參數注入的方案

我有一個解決方案,但是這需要大量的努力,並且可能需要更改目標portlet,如果您使用3rd party portlet,這並非總是可能的。

我的解決方案如下所示:(草稿!)

Portlet會使用其Portlet ID在中央服務處注冊,並且當Portlet想要鏈接到Portlet時,它可以基於符號名進行查找。 這將減輕管理員的痛苦,因為可以“自動發現” portlet。 該服務還可以提供一個UI,以基於源和目標Portlet連接Portlet。

可以更改對portlet的URL的生成可以通過對portlet的服務調用來解決,該portlet生成帶有注入參數的URL作為一個整體並返回它。 對於無法更改的portlet,您必須附加參數並希望它能起作用。 : - /

有什么建議么? 有更簡單的解決方案嗎? 現有的解決方案?

謝謝!

帕特里克

據我所知,Portlet規范並未涵蓋這一點。 因此,沒有便攜式解決方案。 對於Liferay,您始終可以使用針對此問題的自定義標簽庫。 Websphere Portal有類似的機制。

可以在這里這里找到一些東西

通常,我會嘗試避免這種情況並使用標准的IPC機制(公共渲染參數或事件)

對於JSR 286規范,可以將事件用於Portlet間的通信。 對於較舊的JSR 168,沒有認可的方法。 如果您找到適合自己的方法,請使用它。

曼寧免費贈送一本舊書(需要注冊)。 您可以在那里找到一些想法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM