java - 使用 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>
                   ]]></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/

相关文章:

java - BorderLayout 的 Swing GUI 问题

java - 为什么没有 Math.floor(float)?

java - 从另一个类java中的resultSet访问数据

WPF:绑定(bind)到我的自定义控件不会更新

java - 如何在 ZK 中记录 UI 事件?

selenium - 使用 Selenium Webdriver 测试 ZK 应用程序

java - 在 Java 或 Groovy 中,如何找到 byte[] 的文件类型?

WPF 数据绑定(bind) IsEnabled 属性

android - 数据绑定(bind)必须包含布局文件

java - 什么是或如何确定 ZK ViewModel 的生命周期