CommandButton extends the standard h:commandButton with ajax, partial processing and skinning features.
Documentation<h:form> <p:growl id="growl" life="2000" /> <p:commandButton value="Ajax Submit" id="ajax" update="growl" action="#{buttonView.buttonAction}" style="margin-right:20px;" styleClass="ui-priority-primary" /> <p:commandButton value="Non-Ajax Submit" id="nonAjax" action="#{buttonView.buttonAction}" style="margin-right:20px;" ajax="false" /> <p:commandButton value="With Icon" id="withIcon" action="#{buttonView.buttonAction}" update="growl" style="margin-right:20px;" icon="pi pi-save" /> <p:commandButton action="#{buttonView.buttonAction}" id="iconOnly" update="growl" style="margin-right:20px;" icon="pi pi-save" title="Icon Only" /> <p:commandButton value="Disabled" id="disabled" style="margin-right:20px;" disabled="true" /> </h:form>
@Named @RequestScoped public class ButtonView { private MenuModel model; @PostConstruct public void init() { model = new DefaultMenuModel(); //First submenu DefaultMenuItem item = DefaultMenuItem.builder() .value("External") .url("http://www.primefaces.org") .icon("pi pi-home") .build(); DefaultSubMenu firstSubmenu = DefaultSubMenu.builder() .label("Dynamic Submenu") .addElement(item) .build(); model.getElements().add(firstSubmenu); //Second submenu item = DefaultMenuItem.builder() .value("Save") .icon("pi pi-save") .function((i) -> save()) .update("messages") .build(); DefaultSubMenu secondSubmenu = DefaultSubMenu.builder() .label("Dynamic Actions") .addElement(item) .build(); item = DefaultMenuItem.builder() .value("Delete") .icon("pi pi-times") .command("#{buttonView.delete}") .ajax(false) .build(); secondSubmenu.getElements().add(item); model.getElements().add(secondSubmenu); } public MenuModel getModel() { return model; } public String save() { addMessage("Data saved"); return null; } public void update() { addMessage("Data updated"); } public void delete() { addMessage("Data deleted"); } public void buttonAction() { addMessage("Welcome to PrimeFaces!!"); } public void addMessage(String summary) { FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, null); FacesContext.getCurrentInstance().addMessage(null, message); } }