【问题标题】:Liferay Document Library: execute method on document downloadLiferay 文档库:在文档下载时执行方法
【发布时间】:2012-12-17 23:34:57
【问题描述】:

我在Liferay community 中问过同样的问题,但没有答案,所以我在这里尝试:)

每次用户从文档库下载文件时,我都需要执行一个操作/调用一个方法,为简单起见,我会说一个 System.out.println("a file has been added") 每次用户点击直接文件链接。

您对我如何实现这一点有任何想法吗? 我正在使用 LR 6.0.6 CE,并且真的会尽量避免使用 EXT 环境......任何关于如何用钩子实现这一点的想法将不胜感激!

我正在考虑在调用 System.out.println() 函数的 JSP (onClick) 上添加一些 javascript,但不确定是否可行。

我想到了动作钩子、模型监听器、覆盖服务……你认为最好的方法是什么?

【问题讨论】:

    标签: hook liferay liferay-6 document-library


    【解决方案1】:

    我找到了一种方法来实现这一点,为 DLFileEntry 模型创建模型侦听器并覆盖方法“onAfterUpdate”,每次下载文档时都会触发该方法,因为它会更改 readcount 变量的值。

    【讨论】:

    • 听上去是目前情况下可行的解决方案!
    【解决方案2】:

    为了添加业务逻辑,您应该查看DLFileEntryLocalService 和此服务的包装器,而不是模型侦听器。模型监听器用于与持久性相关的修复,而不是添加任意新逻辑 - 这在 *LocalService 包装器中更好,因为 *LocalService 是关于业务逻辑的。

    这需要一个 Hook,远离 ext 是正确的——这里不需要它,而且你会遇到比使用 Hook 更多的升级问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-15
      • 1970-01-01
      • 1970-01-01
      • 2020-06-01
      • 2012-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多