DefaultCommand controls which command to initiate form submit with when enter key is pressed. Example below demonstrates 3 types of buttons; non-ajax, ajax and standard.
Documentation<h:form id="form"> <p:growl> <p:autoUpdate /> </p:growl> <p:panelGrid columns="2" layout="flex" columnClasses="p-col-4, p-col-8" styleClass="ui-fluid"> <h:outputLabel for="btnSelect" value="Default Button:" /> <p:selectOneMenu id="btnSelect" value="#{defaultCommandView.btn}" onchange="$('#form').submit()"> <f:selectItems value="#{defaultCommandView.buttons}" /> </p:selectOneMenu> <h:outputLabel for="name" value="Name:" style="font-weight:bold"/> <p:inputText id="name" value="#{defaultCommandView.text}" /> </p:panelGrid> <br/> <p:commandButton value="Button1" id="btn1" action="#{defaultCommandView.btn1Submit}" ajax="false"/> <p:commandButton value="Button2" id="btn2" action="#{defaultCommandView.btn2Submit}" /> <h:commandButton value="Button3" id="btn3" action="#{defaultCommandView.btn3Submit}" /> <p:defaultCommand target="#{defaultCommandView.btn}" /> </h:form>
@Named @RequestScoped public class DefaultCommandView { private String text; private String text2; private String btn = "btn1"; private List<String> buttons; @PostConstruct public void init() { buttons = new ArrayList<String>(); buttons.add("btn1"); buttons.add("btn2"); buttons.add("btn3"); } public String getBtn() { return btn; } public void setBtn(String btn) { this.btn = btn; } public List<String> getButtons() { return buttons; } public void setButtons(List<String> buttons) { this.buttons = buttons; } public String getText() { return text; } public void setText(String text) { this.text = text; } public String getText2() { return text2; } public void setText2(String text2) { this.text2 = text2; } public void addMessage(String btn) { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Submitted with " + btn)); } public void btn1Submit() { addMessage("btn1"); } public void btn2Submit() { addMessage("btn2"); } public void btn3Submit() { addMessage("btn3"); } }