2013-11-22 97 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) { 
    ... 
}