Java 使用zk根据菜单加载页面
我在zk中有一个zul页面,我只需要刷新中心,其他页面取决于我的菜单Java 使用zk根据菜单加载页面,java,data-binding,zk,Java,Data Binding,Zk,我在zk中有一个zul页面,我只需要刷新中心,其他页面取决于我的菜单 <borderlayout> //the header of my page <north> <html><![CDATA[ <h1> <b>My page</h1><h3>page 1</b></h3>
<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>`
我的菜单是从数据库加载的列表
<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>`
`
<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>`
//我的页眉
我的页面第1页
]]>
//这里我加载了一个从数据库中查询的列表
div.z-listbox-body.z-listcell{
填充物:2px 5px;
}
//在这里,我需要收费的一页取决于我的列表菜单的选项。
.
.
.
`
我的java类是:
<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>`
`
包com.gemalto.segmentation.viewModel
<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>`
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");
}
}
import persistence.dao.MnoDAO;
导入persistence.db.Mno;
导入java.util.ArrayList;
导入java.util.List;
导入org.zkoss.bind.annotation.Command;
导入org.zkoss.zul.Messagebox;
公共类MnoViewModel{
私有Mno Mno=新Mno();
启用私有布尔值;
公共布尔值isEnabled(){
返回启用;
}
已启用公共void集(已启用布尔值){
this.enabled=已启用;
}
公共Mno getMno(){
返回mno;
}
公共无效设置Mno(Mno Mno){
this.mno=mno;
}
公共列表getMnos(){
列表运算符=MnoDAO.getMnos();
List mnos=new ArrayList();
用于(Mno Lmnos:操作员){
mnos.add(Lmnos.getMnoName());
}
返回MNO;
}
@命令
公开作废提交(){
if(MnoDAO.getMnoByName(mno.getMnoName())!=null){
Messagebox.show(“Mno存在”);
}否则{
短a=0;
如果(isEnabled())
a=1;
mno=新的mno(mno.getMnoName(),mno.getTrigram(),mno.getPrefix(),mno.getPrefixRequired(),mno.getProjectCode(),a);
mnodo.createMno(mno);
Messagebox.show(“Mno已创建”);
}
}
@命令
公共作废删除(){
Messagebox.show(“已删除”);
}
}
`
我不知道如何才能将菜单中的列表转换为重定向到中心页的其他页面
<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>`
我不知道如何才能只刷新页面的中心
<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>`
<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>`
或者,您可以通过以下步骤来完成:
<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>`
a。通过以下方式删除中心的所有子项:center.getChildren().clear()代码>
B通过以下方式创建中心的子项:执行。createComponents
,请参阅
<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>`
可以在中心使用“包含零部件”。这允许您仅通过更改src属性来动态添加页面。可以插入窗口、div或任何组件。此外,您可以使用Executions.createComponents在服务器端创建窗口。一切都取决于您使用的模式(MVVM或MVC)。请评论我们,我们将帮助您
<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>`
问候
<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>`