1. 创建弹出窗,并传入参数;
package com.huey.zkdemo.controller;
import java.util.HashMap;
import java.util.Map;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zul.Window;
public class DialogOpenController extends SelectorComposer<Component> {
/**
*
*/
private static final long serialVersionUID = -1055370682665630934L;
@Listen("onClick = #openBtn")
public void showModal(Event e) {
Map<String, Object> arg = new HashMap<String, Object>();
arg.put("msg", "Hello ZK!");
Window window = (Window)Executions.createComponents(
"dialog.zul", null, arg);
window.doModal();
}
}
对应的zul:
<?page title="Index" contentType="text/html;charset=UTF-8"?>
<zk>
<div apply="com.huey.zkdemo.controller.DialogOpenController">
<button id="openBtn" label="OpenDialog" autodisable="self" />
</div>
</zk>
2. 在弹出窗的doAfterCompose方法中通过Executions.getCurrent().getArg()获取参数;
package com.huey.zkdemo.controller;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.Label;
public class DialogShowController extends SelectorComposer<Component> {
/**
*
*/
private static final long serialVersionUID = -3542485491136853284L;
@Wire
private Label msgLabel;
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
String msg = (String)Executions.getCurrent().getArg().get("msg");
msgLabel.setValue(msg);
}
}
对应的zul:
<?page title="new page title" contentType="text/html;charset=UTF-8"?>
<zk>
<window title="Message" border="normal" width="400px"
apply="com.huey.zkdemo.controller.DialogShowController">
<label id="msgLabel"/>
</window>
</zk>