Default Command
DefaultCommand controls which command to initiate form submit when enter key is pressed. Example below demonstrates 3 types of buttons; non-ajax, ajax and standard. Multiple defaultCommand in same form is supported with scope option.
Source
<h:form id="form">
<p:growl autoUpdate="true"/>
<h:panelGrid columns="2">
<h:outputLabel for="btnSelect" value="Default Button:" />
<p:selectOneMenu id="btnSelect" value="#{defaultCommandBean.btn}" onchange="$('#form').submit()">
<f:selectItems value="#{defaultCommandBean.buttons}" />
</p:selectOneMenu>
</h:panelGrid>
<p:separator />
<h:panelGrid columns="3" cellpadding="5">
<h:outputLabel for="name" value="Name:" style="font-weight:bold"/>
<p:inputText id="name" value="#{defaultCommandBean.text}" />
<h:outputText value="#{defaultCommandBean.text}" id="display" />
</h:panelGrid>
<p:commandButton value="Button1" id="btn1" actionListener="#{defaultCommandBean.btn1Submit}" ajax="false"/>
<p:commandButton value="Button2" id="btn2" actionListener="#{defaultCommandBean.btn2Submit}" />
<h:commandButton value="Button3" id="btn3" actionListener="#{defaultCommandBean.btn3Submit}" />
<p:defaultCommand target="#{defaultCommandBean.btn}" />
</h:form>
package org.primefaces.examples.view;
import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
public class DefaultCommandBean {
private String text;
private String btn = "btn1";
private List<String> buttons;
public DefaultCommandBean() {
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 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");
}
}
