【发布时间】:2015-03-04 01:15:09
【问题描述】:
目标是实现一个选项卡 Portlet - 用于显示和管理包含嵌套 Portlet 的选项卡的 Portlet(类似于嵌套 Portlets Portlet)。
其中一个要求是从 Layout on Tab Portlet 移除中移除嵌套的 Portlet 引用。
我实现了 PortletLayoutListener,实际上,方法 onRemoveFromLayout 在 Tab Portlet 移除时被调用。侦听器更新布局。在调试侦听器时,我可以验证更改是否已写入 Liferay 数据库(写入 LAYOUT 表)。 Layout 实例是通过 LayoutLocalServiceUtil.getLayout(plid) 方法获取的。 使用 LayoutLocalServiceUtil.updateLayout 方法进行更新。
问题是监听器是从 UpdateLayoutAction 调用的,它随后会更新 Layout itsef 并覆盖我的更改(它会还原它们)。
问题是 - 是否可以在 PortletLayoutListener.onRemoveFromLayout 方法中更新布局?如果没有,我可以使用其他选项吗?
【问题讨论】: