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 回答