收听Portlet/应用程序对liferay页面和内容所做的更改

收听Portlet/应用程序对liferay页面和内容所做的更改,liferay,liferay-6,Liferay,Liferay 6,我想知道,了解现有或当前部署的portlet/应用程序正在门户中的某个位置使用的最佳方式是什么 例: 网页内容显示已添加到网页 文档和媒体portlet已添加到网页 除了创建LayoutListener或扩展LayoutLocalService之外,还有一种方法可以侦听这些事件。 如果我想记录这些事件,最好的方法是什么 我在某处发现了这个。但这不是一个非常有用的答案。从技术上讲,Liferay具有ModelListener(例如LayoutListener),可以在布局属性发生更改时收到通知。但

我想知道,了解现有或当前部署的portlet/应用程序正在门户中的某个位置使用的最佳方式是什么

例:

  • 网页内容显示已添加到网页
  • 文档和媒体portlet已添加到网页
  • 除了创建LayoutListener或扩展LayoutLocalService之外,还有一种方法可以侦听这些事件。 如果我想记录这些事件,最好的方法是什么


    我在某处发现了这个。但这不是一个非常有用的答案。

    从技术上讲,Liferay具有ModelListener(例如LayoutListener),可以在布局属性发生更改时收到通知。但是,您应该只将它们用于与持久性相关的操作,而不用于业务层操作。相反,使用ServiceWrappers-例如,用于LayoutLocalService。确定您感兴趣的API方法,包装它们并在原始实现之前或之后执行自定义代码。您可能需要包装一些方法,但是这些服务中的代码更改是干净的

    在你们举出一些例子时,让我说几句话

  • 当您提到添加到页面的“Web内容显示Portlet”时,这当然相对容易。但是,如果“Web内容文章”现在显示在AssetPublisher上,因为它符合标准,那么这就不那么容易了

  • 如果您只是对在页面上添加portlet感兴趣,那么这比更改配置更容易。对于“Web内容显示Portlet”,这意味着现在页面上将显示不同的文章,即使Portlet保持不变

  • (当我写下答案时,我的互联网连接中断了——我无法检查实际的API,但希望保持此页面打开,以便稍后在我可能无法进一步调查时提交)