当我的 portlet 实例将从页面中删除时,我想捕获该事件以从该 portlet 中获取一些偏好值,并执行某些操作。
Liferay 中是否有类似接口或钩子的功能?
PortletLayoutListener
您可以在liferay-portlet.xml中定义自己的:
<portlet>
<portlet-name>xxyyzz</portlet-name>
...
<portlet-layout-listener-class>com.myCompany.MyLayoutTypePortletListener</portlet-layout-listener-class>
...
</portlet>
您的MyLayoutTypePortletListener可能类似于:
public class MyLayoutTypePortletListener
implements PortletLayoutListener {
public void onRemoveFromLayout(String portletId, long plid)
throws PortletLayoutListenerException {
// ***** ... your LOGIC HERE *****
}
public void onMoveInLayout(String portletId, long plid)
throws PortletLayoutListenerException {
}
public void onAddToLayout(String portletId, long plid)
throws PortletLayoutListenerException {
}
}
有关示例和Liferay 的论坛帖子,请参见期刊内容 portlet 。