我在Liferay community中问了同样的问题,但没有答案,所以我在这里试试:)
每次用户从文档库下载文件时,我都需要执行一个动作/调用方法,为简单起见,每次用户点击时我都会说System.out.println(“已下载文件”)直接文件链接。
您对我如何实现这一目标有任何想法吗? 我正在使用LR 6.0.6 CE并且会尽量避免使用EXT环境...任何关于如何使用钩子来实现这一点的想法都会非常感激!!
我正在考虑在调用System.out.println()函数的JSP(onClick)上添加一些javascript,但不确定是否可能。
我想过动作挂钩,模型听众,覆盖服务......您认为最好的方式是什么?
答案 0 :(得分:2)
我找到了一种方法来实现这一点,为DLFileEntry模型创建一个模型Listener,并覆盖方法“onAfterUpdate”,每次下载文档时都会触发该方法,因为它会更改readcount变量的值。
答案 1 :(得分:2)
为了添加业务逻辑,您应该查看DLFileEntryLocalService和此服务的包装器,而不是模型侦听器。模型监听器用于与持久性相关的修复,但不是为了添加任意新逻辑 - 这在*LocalService
包装器中更好,因为*LocalService
是关于业务逻辑的。
这需要一个Hook,你是正确的,远离分机 - 这里不需要它,你有比钩子更多的升级问题。