我想知道在门户网站的某个地方使用现有或当前部署的portlet /应用程序的最佳方式是什么。
前:
除了创建 LayoutListener 或扩展 LayoutLocalService 之外,还有一种方法可以收听这些事件。 如果我想跟踪这些事件,最好的方法是什么?
我在SO中发现了这个question。但不是一个非常有用的答案。
答案 0 :(得分:1)
从技术上讲,Liferay有ModelListeners(例如LayoutListener),可以获得有关Layout属性更改的通知。但是,您应该仅将它们用于与持久性相关的操作,而不是用于业务层操作。相反,使用ServiceWrappers - 例如对于LayoutLocalService。确定您感兴趣的API方法,包装它们并在原始实现之前或之后执行自定义代码。您可能需要包含一些方法,但代码更改在这些服务中将是干净的。
在您举一些例子时,让我发表一些评论
当您参考" Web内容显示Portlet"这当然相对容易。被添加到页面。但是,如果是一个" Web内容文章"现在显示在AssetPublisher上,因为它符合标准,这不是那么容易。
如果您只对页面上添加的portlet感兴趣,这比配置更改更容易。对于" Web内容显示Portlet"这可能意味着现在页面上会显示不同的文章,即使portlet保持不变。
(虽然我写了答案,我的互联网连接断了 - 我无法检查实际的API,但希望保持此页面打开以便稍后提交时我可能无法进行调查)