Java 在ZK中,在我的GenericForwardComposer类中,如何捕获所有onClick和onChange事件?
我知道,如果我用匹配的id定义onClick$id方法,我可以捕获特定的按钮或文本字段。我希望有一个通用的onClick something和onChange something方法,当单击任何按钮或更新任何文本字段时调用该方法。ZK框架有可能做到这一点吗?您可以通过两种方式做到这一点 1) 在控制器上定义单个事件处理程序,并将所有其他组件事件转发给该事件处理程序。例如,考虑这个具有3个按钮组件的示例ZUML文件Java 在ZK中,在我的GenericForwardComposer类中,如何捕获所有onClick和onChange事件?,java,ajax,zk,Java,Ajax,Zk,我知道,如果我用匹配的id定义onClick$id方法,我可以捕获特定的按钮或文本字段。我希望有一个通用的onClick something和onChange something方法,当单击任何按钮或更新任何文本字段时调用该方法。ZK框架有可能做到这一点吗?您可以通过两种方式做到这一点 1) 在控制器上定义单个事件处理程序,并将所有其他组件事件转发给该事件处理程序。例如,考虑这个具有3个按钮组件的示例ZUML文件 <zk> <window id="mainwin" border
<zk>
<window id="mainwin" border="normal" title="hello" apply="pkg.TestComposer">
<button id="btn1" label="Click Me 1" forward="mainwin.onClick" />
<button id="btn2" label="Click Me 2" forward="mainwin.onClick" />
<button id="btn3" label="Click Me 3" forward="mainwin.onClick" />
</window>
</zk>
现在,对于每个按钮,您可以使用forward属性并定义目标组件以及要以以下格式处理的事件forward=“event name=target component.target event”。有关更多详细信息,请参阅转发属性引用
2) 在ZK6中,有一种更优雅的方法来实现这一点,即使用SelectorComposer和注释来定义事件处理程序。例如
@Listen("onClick = window > button")
public void onClickAnyButton() {
// ...
}
有关Selector Composer的更多详细信息,请参阅
@Listen("onClick = window > button")
public void onClickAnyButton() {
// ...
}