DefaultCommand controls which command to initiate form submit with when enter key is pressed. Multiple defaultCommand in same form is supported with scope option. Within a Textarea the defaultCommand is not active.
Documentation<h:form id="form"> <p:growl> <p:autoUpdate /> </p:growl> <p:panel header="Panel 1" id="panel1"> <p:panelGrid columns="2" layout="flex" columnClasses="p-col-4, p-col-8" styleClass="ui-fluid ui-noborder"> <h:outputLabel for="name" value="Name"/> <p:inputText id="name" value="#{defaultCommandView.text}" /> <h:outputLabel for="textarea" value="Textarea"/> <p:inputTextarea id="textarea" value="#{defaultCommandView.text2}" /> </p:panelGrid> </p:panel> <br/> <p:panel header="Panel 2" id="panel2"> <p:panelGrid columns="2" layout="flex" columnClasses="p-col-4, p-col-8" styleClass="ui-fluid ui-noborder"> <h:outputLabel for="otherInput" value="Other input"/> <p:inputText id="otherInput" /> </p:panelGrid> </p:panel> <br/> <p:commandButton value="Button1" id="btn1" action="#{defaultCommandView.btn1Submit}" /> <p:commandButton value="Button2" id="btn2" action="#{defaultCommandView.btn2Submit}" /> <p:defaultCommand target="btn1" scope="panel1" /> <p:defaultCommand target="btn2" scope="panel2" /> </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"); } }