2

大規模なZK/Springアプリケーションを使用していますが、個々の要素にログステートメントを追加せずに、すべてのUI要素にトレーススタイルのログを追加できるかどうかを知りたいと思います。(UIから開始されたイベントをトレースできるようにしたいです。)

ありがとう!

4

1 に答える 1

2

サーバー側ですべての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 !!!
于 2012-10-05T02:54:54.893 に答える