Wicketとイベントソーシングを試しています。ユーザーアクションをログに記録しようとしているので、それらを再生したり、テストやデモの目的で使用したりできます。
戦略として何をお勧めしますか?
たとえば、アクションクラスを定義して、onsubmitなどに配置できます。または、リンク、ボタン、テキストフィールドなど、ウィケットのすべての「アクション」コンポーネントをオーバーライドできます。等。
何か良いアドバイスはありますか?
Wicketとイベントソーシングを試しています。ユーザーアクションをログに記録しようとしているので、それらを再生したり、テストやデモの目的で使用したりできます。
戦略として何をお勧めしますか?
たとえば、アクションクラスを定義して、onsubmitなどに配置できます。または、リンク、ボタン、テキストフィールドなど、ウィケットのすべての「アクション」コンポーネントをオーバーライドできます。等。
何か良いアドバイスはありますか?
警告:これは問題の解決策ではありません。ajaxでのみ機能する可能性がありますが、それについてもわかりません。
IComponentInstantiationListenerを使用して、作成されている新しいコンポーネントを確認し、クリック可能かどうかを確認できます。次に、Logging-Behaviorをアタッチできます。このようにして、ロギングのオンとオフを1か所で簡単に切り替えることができ、ロギングを行うためにすべてのLink-、Button、およびWhatnot-classをサブクラス化する必要はありません。
1.2以降、Wicketに付属のリクエストロガーをすぐに使用できます(ただし、その実装は長年にわたって大幅に変更されています)。これにより、リクエストのターゲットと応答が(6.0ではwicket-extensionsを参照)JSON形式でログに記録されて解析されます。ユーザーの数によっては、扱いにくいログが生成される可能性があることに注意してください。
Wicket自体はこのようなものへのフックを提供しませんが、使用する他のテクノロジーに応じて、永続性レイヤーでそれを行うことができます-たとえば、JPAの@ PreRemove、@ PreUpdate、@PrePersistを使用します。もう1つのアプローチは、アスペクト指向プログラミング(AOP)です。
すべてのユーザーアクションがhttpリクエストのajaxまたはクラシックであることを考慮すると、必要な識別子を使用してすべてのリクエストをログに記録できます(すべてのリクエストにはコンポーネントパスがあります)。Wicket 1.4ではリクエストサイクルを延長し、1.5+ではリクエストサイクルリスナーを追加します。
https://cwiki.apache.org/WICKET/requestcycle-in-wicket-15.htmlを参照してください