我正在使用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 :(得分: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) {
...
}