[英]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,您必須附加參數並希望它能起作用。 : - /
有什么建議么? 有更簡單的解決方案嗎? 現有的解決方案?
謝謝!
帕特里克
對於JSR 286規范,可以將事件用於Portlet間的通信。 對於較舊的JSR 168,沒有認可的方法。 如果您找到適合自己的方法,請使用它。
曼寧免費贈送一本舊書(需要注冊)。 您可以在那里找到一些想法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.