main.zul
...@init('Main')...
<zk>
...
<include src="north.zul"/>
<include src="@bind(vm.pageSource)"/>
...
<zk>
north.zul
...@init('North')...
<zk>
...
<a onClick="@command('linkClicked')">link</a>
...
<zk>
Main.java
...
private String pageSource = "content1.zul"
//getter setter of PageSource
North.java
...
@command
public void linkClicked(){
// access main object and call main.setPageSource("content2.zul") (how to do this ?)
}
现在,如果为main.zul发出http
请求,那么将创建Main和North的实例,无论如何我可以访问Main对象吗?
是否有像ZKcontext
这样的东西,我可以要求会话范围实例?
答案 0 :(得分:1)
您应该在onClick
中的north.zul
事件中发布全局命令:
onClick="@global-command('switchContent', file='content2.zul')"
在你的Main.java
中,你在听这个全局命令:
@GlobalCommand
@NotifyChange("pageSource")
public void switchContent(@BindingParam("file") String file) {
setPageSource(file);
}