ContextMenu is an overlay menu display mainly displayed using right-click.
DocumentationRight click to view the menu options. <h:form> <p:growl id="messages" showDetail="true"/> <p:contextMenu> <p:menuitem value="Save" action="#{menuView.save}" update="messages" icon="pi pi-save"/> <p:menuitem value="Update" action="#{menuView.update}" update="messages" icon="pi pi-refresh"/> <p:menuitem value="Delete" action="#{menuView.delete}" ajax="false" icon="pi pi-times"/> <p:menuitem value="Homepage" url="http://www.primefaces.org" icon="pi pi-home"/> </p:contextMenu> </h:form>
@Named @RequestScoped public class MenuView { private MenuModel model; @PostConstruct public void init() { model = new DefaultMenuModel(); //First submenu DefaultSubMenu firstSubmenu = DefaultSubMenu.builder() .label("Dynamic Submenu") .build(); DefaultMenuItem item = DefaultMenuItem.builder() .value("External") .url("http://www.primefaces.org") .icon("pi pi-home") .build(); firstSubmenu.getElements().add(item); model.getElements().add(firstSubmenu); //Second submenu DefaultSubMenu secondSubmenu = DefaultSubMenu.builder() .label("Dynamic Actions") .build(); item = DefaultMenuItem.builder() .value("Save") .icon("pi pi-save") .command("#{menuView.save}") .update("messages") .build(); secondSubmenu.getElements().add(item); item = DefaultMenuItem.builder() .value("Delete") .icon("pi pi-times") .command("#{menuView.delete}") .ajax(false) .build(); secondSubmenu.getElements().add(item); item = DefaultMenuItem.builder() .value("Redirect") .icon("pi pi-search") .command("#{menuView.redirect}") .build(); secondSubmenu.getElements().add(item); model.getElements().add(secondSubmenu); } public MenuModel getModel() { return model; } public void save() { addMessage("Success", "Data saved"); } public void update() { addMessage("Success", "Data updated"); } public void delete() { addMessage("Success", "Data deleted"); } public void addMessage(String summary, String detail) { FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail); FacesContext.getCurrentInstance().addMessage(null, message); } }