如何识别单击的菜单项

时间:2013-11-22 10:41:18

标签: primefaces

我正在使用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;
    }
}

1 个答案:

答案 0 :(得分: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) {
   ...
}