Project Name : MVVMPassParameterUsingReDirect
ZK Version : 6.5.0 CE
Project Structure:
1: <?page title="new page title" contentType="text/html;charset=UTF-8"?>
2: <zk>3: <window title="MVVM window Passing arguments and retur values. This is one.zul"
4: border="normal" apply="org.zkoss.bind.BindComposer"
5: viewModel="@id('e') @init('com.demo.UI.oneVM')">
6: <separator></separator>7: <label value="ZK Version : ${desktop.webApp.version}"/>
8: <separator></separator> 9: Type any value and Press Button to show the Show two.zul file by redirecting the URL 10: <separator></separator> 11: Value 1 :12: <textbox value="@bind(e.value1)" />
13: Value 2 :14: <textbox value="@bind(e.value2)" />
15: 16: <button label="two.zul" onClick="@command('showtwozul')" />
17: </window> 18: </zk>two.zul file
1: <?page title="new page title" contentType="text/html;charset=UTF-8"?>
2: <zk> 3: 4: <window id="two"
5: title="MVVM Modal window Passing arguments and retur values. This is two.zul"
6: action="hide: slideUp" apply="org.zkoss.bind.BindComposer"
7: onCancel="@command('closeThis')"
8: viewModel="@id('e') @init('com.demo.UI.twoVM')">
9: <separator /> 10: Value 1 :11: <textbox value="@bind(e.value1)" />
12: Value 2 :13: <textbox value="@bind(e.value2)" />
14: <button label="Close" onClick="@command('closeThis')" />
15: </window> 16: </zk>
oneVM.java
1: package com.demo.UI;
2: 3: import java.util.HashMap;
4: 5: import org.zkoss.bind.annotation.Command;
6: import org.zkoss.zk.ui.Executions;
7: import org.zkoss.zk.ui.Sessions;
8: 9: public class oneVM {
10: 11: private String value1;
12: private String value2;
13: 14: 15: public String getValue1() {
16: return value1;
17: } 18: 19: public void setValue1(String value1) {
20: this.value1 = value1;
21: } 22: 23: public String getValue2() {
24: return value2;
25: } 26: 27: public void setValue2(String value2) {
28: this.value2 = value2;
29: } 30: 31: @Command32: public void showtwozul()
33: {34: final HashMap<String, Object> map = new HashMap<String, Object>();
35: map.put("value1", this.value1 );
36: map.put("value2", this.value2);
37: Sessions.getCurrent().setAttribute("allmyvalues", map);
38: Executions.sendRedirect("two.zul");
39: 40: } 41: 42: 43: }twoVM.java
1: package com.demo.UI;
2: 3: import java.util.HashMap;
4: import org.zkoss.bind.annotation.Command;
5: import org.zkoss.bind.annotation.ContextParam;
6: import org.zkoss.bind.annotation.ContextType;
7: import org.zkoss.bind.annotation.Init;
8: import org.zkoss.zk.ui.Component;
9: import org.zkoss.zk.ui.Sessions;
10: import org.zkoss.zk.ui.select.Selectors;
11: import org.zkoss.zk.ui.select.annotation.Wire;
12: import org.zkoss.zul.Window;
13: 14: public class twoVM {
15: 16: @Wire("#two")
17: private Window win;
18: private String value1;
19: private String value2;
20: 21: public String getValue1() {
22: return value1;
23: } 24: 25: public void setValue1(String value1) {
26: this.value1 = value1;
27: } 28: 29: public String getValue2() {
30: return value2;
31: } 32: 33: public void setValue2(String value2) {
34: this.value2 = value2;
35: } 36: 37: @Init38: public void init(@ContextParam(ContextType.VIEW) Component view) {
39: Selectors.wireComponents(view, this, false);
40: 41: final HashMap<String, Object> map = (HashMap<String, Object>) Sessions
42: .getCurrent().getAttribute("allmyvalues");
43: this.value1 = (String) map.get("value1");
44: this.value2 = (String) map.get("value2");
45: 46: } 47: 48: @Command49: public void closeThis() {
50: win.detach(); 51: } 52: }Now run one.zul file and enter some values and click on two.zul file to pass the parameter to two.zul file