大規模なZK/Springアプリケーションを使用していますが、個々の要素にログステートメントを追加せずに、すべてのUI要素にトレーススタイルのログを追加できるかどうかを知りたいと思います。(UIから開始されたイベントをトレースできるようにしたいです。)
ありがとう!
サーバー側ですべてのUIイベントをログに記録する場合は、次のようなEventInterceptorを実装してください。
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.util.EventInterceptor;
public class LogEventInterceptor implements EventInterceptor {
public Event beforeProcessEvent(Event event) {
System.out.println(event.getName() + " event received for + "
+ event.getTarget().getId() + "!!!");
return event;
}
// rest of the impl
次に、zk.xmlで以下のように構成します(詳細については、ここを参照してください)
<listener>
<listener-class>foo.LogEventInterceptor</listener-class>
</listener>
このような単純なzulファイルの場合
<window border="normal" title="Intercepting UI Events demo">
<button id="helloBtn" label="Click me to Say hello"
onClick='alert("Hello !!!")'>
</button>
</window>
次にhelloBtnをクリックすると、サーバーコンソールに次のログオンが生成されます
onClick event received for + helloBtn !!!