Загрузить страницу в зависимости от меню с помощью zk
У меня есть zul страница в 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>`
мой класс Java это:
`package 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");
}
}
`И я не знаю, как я могу преобразовать свой список в меню, которое перенаправляет на другую страницу в моей центральной странице.
И я не знаю, как я могу обновить только центр моей страницы
2 ответа
- Вы можете создать меню с помощью привязки детей.
Чтобы обновить только центр, вы можете добавить компонент включения внутри центра и изменить его атрибут src.
Или вы можете сделать это, выполнив следующие действия:
а. удалить всех детей центра:
center.getChildren().clear();
б. создать детей центра:Executions.createComponents
, обратитесь к Загрузке ZUML в Java
Вы можете использовать включить компонент в центре. Это позволяет добавлять страницы динамически только при изменении атрибута src. Вы можете вставить окно, div или любой компонент. Кроме того, вы можете использовать Executions.createComponents для создания окон на стороне сервера. Все зависит от шаблона, который вы используете (MVVM или MVC). Прокомментируйте нас, и мы поможем вам.
С уважением