1. zul页面index.zul:
<?page title="Hello ZK" contentType="text/html;charset=UTF-8"?>
<zk>
<!-- apply属性将页面上的控件与JavaBean绑定起来 -->
<window title="Hello ZK" border="normal"
apply="com.huey.zk.controller.SimpleMsgController">
<vbox>
<hbox>msg: <label id="msgLabel" /></hbox>
<hbox>
<textbox id="msgTextbox" />
<button id="ctrlButton" label="OK" />
</hbox>
</vbox>
</window>
</zk>
2. SelectorComposer:
package com.huey.zk.controller;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.Label;
import org.zkoss.zul.Textbox;
/**
* ZK组件控制器SimpleMsgController
* @author huey2672
* @version 1.0
* @created 2014-8-8
*/
public class SimpleMsgController extends SelectorComposer<Component> {
/**
*
*/
private static final long serialVersionUID = 35698036153044181L;
// 与页面的id为msgLabel的控件绑定
@Wire
private Label msgLabel;
// 与页面的id为msgTextbox的控件绑定
@Wire
private Textbox msgTextbox;
// 监听id为ctrlButton的控件的onClick事件
@Listen("onClick=#ctrlButton")
public void sendMsg() {
String msg = msgTextbox.getValue();
msgLabel.setValue(msg);
}
}
3. GenericForwardComposer:
package com.huey.zk.controller;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Label;
import org.zkoss.zul.Textbox;
/**
* ZK组件控制器SimpleMsgController
* @author huey2672
* @version 1.0
* @created 2014-8-8
*/
public class SimpleMsgController extends GenericForwardComposer<Component> {
/**
*
*/
private static final long serialVersionUID = 35698036153044181L;
// 与页面的id为msgLabel的控件绑定
@Wire
private Label msgLabel;
// 与页面的id为msgTextbox的控件绑定
@Wire
private Textbox msgTextbox;
/**
* 监听id为ctrlButton的控件的onClick事件
* @param event
*
* 还可以选择方法签名:public void onXxx()
* 然后在zul页面中ctrlButton的forward属性中指定
*/
public void onClick$ctrlButton(Event event) {
String msg = msgTextbox.getValue();
msgLabel.setValue(msg);
}
}