2

Wicketとイベントソーシングを試しています。ユーザーアクションをログに記録しようとしているので、それらを再生したり、テストやデモの目的で使用したりできます。

戦略として何をお勧めしますか?

たとえば、アクションクラスを定義して、onsubmitなどに配置できます。または、リンク、ボタン、テキストフィールドなど、ウィケットのすべての「アクション」コンポーネントをオーバーライドできます。等。

何か良いアドバイスはありますか?

4

4 に答える 4

4

警告:これは問題の解決策ではありません。ajaxでのみ機能する可能性がありますが、それについてもわかりません。

IComponentInstantiationListenerを使用して、作成されている新しいコンポーネントを確認し、クリック可能かどうかを確認できます。次に、Logging-Behaviorをアタッチできます。このようにして、ロギングのオンとオフを1か所で簡単に切り替えることができ、ロギングを行うためにすべてのLink-、Button、およびWhatnot-classをサブクラス化する必要はありません。

于 2012-12-31T11:26:45.833 に答える
2

1.2以降、Wicketに付属のリクエストロガーをすぐに使用できます(ただし、その実装は長年にわたって大幅に変更されています)。これにより、リクエストのターゲットと応答が(6.0ではwicket-extensionsを参照)JSON形式でログに記録されて解析されます。ユーザーの数によっては、扱いにくいログが生成される可能性があることに注意してください。

于 2013-01-09T17:05:30.380 に答える
1

Wicket自体はこのようなものへのフックを提供しませんが、使用する他のテクノロジーに応じて、永続性レイヤーでそれを行うことができます-たとえば、JPAの@ PreRemove、@ PreUpdate、@PrePersistを使用します。もう1つのアプローチは、アスペクト指向プログラミング(AOP)です。

于 2012-12-31T12:20:14.743 に答える
0

すべてのユーザーアクションがhttpリクエストのajaxまたはクラシックであることを考慮すると、必要な識別子を使用してすべてのリクエストをログに記録できます(すべてのリクエストにはコンポーネントパスがあります)。Wicket 1.4ではリクエストサイクルを延長し、1.5+ではリクエストサイクルリスナーを追加します。

https://cwiki.apache.org/WICKET/requestcycle-in-wicket-15.htmlを参照してください

于 2012-12-31T15:37:06.770 に答える