2

Liferayコミュニティで同じ質問をしましたが、答えがないので、ここで試します:)

ユーザーがドキュメント ライブラリからファイルをダウンロードするたびにアクションを実行するか、メソッドを呼び出す必要があります。簡単にするために、ユーザーが直接ファイルをクリックするたびに System.out.println("ファイルがダウンロードされました") とします。リンク。

どうすればこれを達成できるかについて何か考えがありますか? 私はLR 6.0.6 CEを使用しており、EXT環境を回避しようとしています...フックでこれを達成する方法についてのアイデアは大歓迎です!!

System.out.println() 関数を呼び出す JSP (onClick) に JavaScript を追加することを考えていましたが、それが可能かどうかはわかりません。

アクション フック、モデル リスナー、サービスのオーバーライドについて考えました...どの方法が最適だと思いますか?

4

2 に答える 2

2

ビジネスロジックを追加するには、モデルリスナーではなく、 DLFileEntryLocalServiceとこのサービスのラッパーを確認する必要があります。モデルリスナーは、永続性関連の修正を目的としていますが、任意の新しいロジックを追加するためのものではありません。これは、ビジネスロジックの*LocalService場合と同様に、ラッパーの方が優れています。*LocalService

これにはフックが必要です。extから遠ざけるのは正しいことです。ここでは必要ありません。フックを使用するよりもアップグレードの問題が多くなります。

于 2012-12-17T15:34:57.220 に答える
2

DLFileEntry モデルのモデル リスナーを作成し、readcount 変数の値を変更するため、ドキュメントがダウンロードされるたびにトリガーされる "onAfterUpdate" メソッドをオーバーライドすることで、これを実現する方法を見つけました。

于 2012-12-17T11:00:47.300 に答える