【问题标题】:Dynamically menu primefaces 4.0动态菜单primefaces 4.0
【发布时间】:2014-10-13 17:44:55
【问题描述】:

我正在尝试动态生成菜单栏,我已经得到了结果,但是我有一个方法来检查 DefaultSubMenu 是否已经存在,如果子菜单存在,则不必创建它,它必须返回该子菜单,但是找到时会不断生成相同的子菜单,这就是方法

 public DefaultSubMenu buildSubMenu(OpcionesMenu opcionPrincipal) throws Exception{
    DefaultSubMenu subMenu=null;

    try {
        if(getMenu()==null){
            DefaultSubMenu newSubmenu=new DefaultSubMenu(opcionPrincipal.getIdOpcionMenu().toString());
            newSubmenu.setId(opcionPrincipal.getNombreMenu());

            newSubmenu.setIcon(opcionPrincipal.getIcono());
            newSubmenu.setLabel(opcionPrincipal.getNombreMenu());
            subMenu= newSubmenu;
        }else{
            //Checking the list of DefaultSubMenu
            List<MenuElement> opciones=getMenu().getElements();
            boolean validador=false;
            for (MenuElement me : opciones) {

                if(me.getId().equals(opcionPrincipal.getNombreMenu())){

                    validador=true;// if it is found
                    subMenu=(DefaultSubMenu)me;
                }
            }
            if(!validador){if not found i create the submenu

                    DefaultSubMenu newSubmenu=new DefaultSubMenu(opcionPrincipal.getIdOpcionMenu().toString());
                    newSubmenu.setId(opcionPrincipal.getNombreMenu());
                    newSubmenu.setIcon(opcionPrincipal.getIcono());
                    newSubmenu.setLabel(opcionPrincipal.getNombreMenu());
                    subMenu=newSubmenu;
            }
        }
        return subMenu;

    } catch (Exception e) {
        throw new Exception(
                "Error en la clase UsuarioOpcionMenuController - metodo buildSubMenu\n"
                        + e.getMessage(), e.getCause());
    }       
}

你能帮帮我吗?

【问题讨论】:

    标签: jsf primefaces menubar


    【解决方案1】:

    假设opcionPrincipal.getNombreMenu()返回菜单选项名称和me.getId()返回相同的东西,你可以改变比较条件:

    发件人:

    me.getId().equals(opcionPrincipal.getNombreMenu())
    

    me.getId().equalsIgnoreCase(opcionPrincipal.getNombreMenu())
    

    您(据我所知)在比较 Strings 而不是对象。

    参见thisequals 方法的描述)和thisequalsIgnoreCase 方法的描述)。

    【讨论】:

    • 让我试试@Cold,我会告诉你的
    • Same @Cold,我找到了 SubMenu,问题是我返回了我刚刚找到的子菜单,但它似乎被视为一个新的,我不想那样,我想添加同一个 SubMenu 中的更多项目......我曾在 Primefaces 3.4 工作过......
    • 好的。为什么找到子菜单后不返回?如果你已经找到你想要的,你就不需要检查验证器了吗?
    猜你喜欢
    • 1970-01-01
    • 2017-11-10
    • 2013-09-15
    • 2018-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多