目標是實現用於顯示和管理包含嵌套Portlet的選項卡(類似於嵌套Portlet Portlet)的選項卡Portlet - portlet。如何更新PortletLayoutListener中的佈局
其中一個要求是從「刪除標籤Portlet上的佈局」中刪除嵌套的Portlet引用。
我實現了PortletLayoutListener,事實上,在刪除Tab Portlet時調用了onRemoveFromLayout方法。監聽器更新佈局。在調試偵聽器時,我可以驗證這些更改是寫入Liferay數據庫(LAYOUT表)的。 佈局實例通過LayoutLocalServiceUtil.getLayout(plid)方法獲取。 使用LayoutLocalServiceUtil.updateLayout方法執行更新。
問題是偵聽器是從UpdateLayoutAction中調用的,後者更新了Layout itsef並覆蓋了我的更改(它將它們還原)。
問題是 - 是否有可能更新PortletLayoutListener.onRemoveFromLayout方法中的佈局?如果沒有,我還有其他選擇嗎?
感謝您的回答。我需要處理一個事件,其中將Portlet從佈局中移除並在之後更新佈局。 'PortletLayoutListener'讓我處理這個特定的事件,但是監聽器不能更新佈局。從模型監聽器開始 - 模型監聽器並不意味着更新模型。通常他們會聽取模型更改並對不同實體執行操作。 –