最近在用ZK 6.5的过程中发现Messagebox弹出的确认提示不阻塞线程,后面的代码会直接执行.记得在ZK3.x中不是这样的.
看了下zk.xml的配置,其中有一段
<!-- Uncomment it if you prefer to turn on the event processing thread.
Default: disabled (since ZK 5.0)-->
<system-config>
<disable-event-thread>false</disable-event-thread>
</system-config>
原来从5.0开始出于性能方面的考虑这个事件处理线程默认是不启用了.
简单的解决办法取消这段注释就搞定了.复杂的办法是自己提供事件处理函数.
Messagebox.show("Delete?", "Prompt", Messagebox.YES|Messagebox.NO,
Messagebox.QUESTION,
new EventListener() {
public void onEvent(Event evt) {
switch (((Integer)evt.getData()).intValue()) {
case Messagebox.YES: doYes(); break; //the Yes button is pressed
case Messagebox.NO: doNo(); break; //the No button is pressed
}
}
}
);