我在 zk 中有一个 zul 页面,我只需要刷新中心,其他页面取决于我的菜单。
我的菜单是我从数据库加载的列表
`
<borderlayout>
//the header of my page
<north>
<html><![CDATA[
<h1> <b>My page</h1><h3>page 1</b></h3>
]]></html>
</north>
<west>
//Here I load a list that i consult from the database
<div apply="org.zkoss.bind.BindComposer"
viewModel="@id('vm') @init('com.gemalto.segmentation.viewModel.MnoViewModel')">
<listbox id="list" model="@bind(vm.mnos)" width="200px" rows="20">
<listhead>
<listheader label="Operators" sort="auto" />
</listhead>
</listbox>
<style>
div.z-listbox-body .z-listcell {
padding: 2px 5px;
}
</style>
</div>
</west>
//And here i need charge a page depending of the option of my list menu.
<center>
.
.
.
</center>
</borderlayout>
</zk>`
我的java类是:
` 包 com.gemalto.segmentation.viewModel;
import persistence.dao.MnoDAO;
import persistence.db.Mno;
import java.util.ArrayList;
import java.util.List;
import org.zkoss.bind.annotation.Command;
import org.zkoss.zul.Messagebox;
public class MnoViewModel {
private Mno mno = new Mno();
private boolean enabled;
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public Mno getMno() {
return mno;
}
public void setMno(Mno mno) {
this.mno = mno;
}
public List<String> getMnos() {
List<Mno> operator = MnoDAO.getMnos();
List<String> mnos = new ArrayList();
for(Mno Lmnos : operator) {
mnos.add(Lmnos.getMnoName());
}
return mnos;
}
@Command
public void submit(){
if(MnoDAO.getMnoByName(mno.getMnoName()) != null){
Messagebox.show("Mno exist");
}else{
short a=0;
if(isEnabled())
a=1;
mno = new Mno(mno.getMnoName(), mno.getTrigram(), mno.getPrefix(), mno.getPrefixRequired(), mno.getProjectCode(), a);
MnoDAO.createMno(mno);
Messagebox.show("Mno created");
}
}
@Command
public void delete(){
Messagebox.show("deleted");
}
}
` 我不知道如何在重定向到中心页面中其他页面的菜单中转换我的列表。
我不知道如何才能只刷新页面的中心
最佳答案
您可以在中心使用包含组件。这允许您仅更改 src 属性即可动态添加页面。您可以插入窗口、div 或任何组件。此外,您可以使用 Executions.createComponents 在服务器端创建窗口。一切都取决于您使用的模式(MVVM 或 MVC)。评论我们,我们将为您提供帮助。
问候
关于java - 使用 zk 加载取决于菜单的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18838751/