动态菜单primefaces 4.0
Posted
技术标签:
【中文标题】动态菜单primefaces 4.0【英文标题】:Dynamically menu 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());
你能帮帮我吗?
【问题讨论】:
【参考方案1】:假设opcionPrincipal.getNombreMenu()
返回菜单选项名称和me.getId()
返回相同的东西,你可以改变比较条件:
发件人:
me.getId().equals(opcionPrincipal.getNombreMenu())
到
me.getId().equalsIgnoreCase(opcionPrincipal.getNombreMenu())
您(据我所知)在比较 Strings
而不是对象。
参见this(equals
方法的描述)和this(equalsIgnoreCase
方法的描述)。
【讨论】:
让我试试@Cold,我会告诉你的 Same @Cold,我找到了 SubMenu,问题是我返回了我刚刚找到的子菜单,但它似乎被视为一个新的,我不想那样,我想添加同一个 SubMenu 中的更多项目......我曾在 Primefaces 3.4 工作过...... 好的。为什么找到子菜单后不返回?如果你已经找到你想要的,你就不需要检查验证器了吗?以上是关于动态菜单primefaces 4.0的主要内容,如果未能解决你的问题,请参考以下文章