我正在使用一个大型 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 !!!