2013-11-22 5 views
0

Я использую меню Primefaces (версия 4).Как определить элемент меню, нажатый

При нажатии на меню пользователь переходит на соответствующую страницу. На странице мне нужно определить, какой пункт меню был нажат.

Причина в том, что одна страница сопоставляется с несколькими пунктами меню & Мне нужно идентифицировать элемент меню, который был нажат. Как его можно идентифицировать?

Код:

<p:menu model="#{menuBean.model}" /> 

MenuBean.java

public class MenuBean { 

    private MenuModel model; 

    public MenuBean() { 
     model = new DefaultMenuModel(); 

     DefaultSubMenu firstSubmenu = new DefaultSubMenu("Dynamic Submenu"); 

     DefaultMenuItem item = new DefaultMenuItem("External"); 
     item.setUrl("http://www.primefaces.org"); 
     item.setIcon("ui-icon-home"); 
     firstSubmenu.addElement(item); 

    } 

    public MenuModel getModel() { 
     return model; 
    } 
} 

ответ

0

Вместо вызова setURL() вы можете вызвать setCommand() с параметром является имя метода для вызова и передавая ему параметр, указывающий идентификатор меню. Посмотрите здесь: http://www.primefaces.org/showcase/ui/menu.jsf о том, как использовать setCommand().

Определите пункт меню, как это:

public MenuBean() { 
    ... 
    DefaultMenuItem item = new DefaultMenuItem("Save"); 
    item.setIcon("ui-icon-disk"); 
    item.setCommand("#{menuBean.doCommand('m1')}"); 
    firstSubmenu.addElement(item); 
    ... 
} 

public void doCommand(String identifier) { 
    ... 
} 
Смежные вопросы