Partial processing enables executing certain components while ignoring others during a request.
Documentation<h:form> <h:panelGrid id="grid" cellpadding="5" columns="2" style="margin-bottom:10px"> <f:facet name="header"> <p:messages id="msgs" /> </f:facet> <p:outputLabel for="firstname" value="Firstname:" /> <p:inputText id="firstname" value="#{userView.firstname}" /> <p:outputLabel for="surname" value="Surname:" /> <p:inputText id="surname" value="#{userView.lastname}" required="true" requiredMessage="Surname is required." /> </h:panelGrid> <h:panelGrid columns="6" cellpadding="5"> <p:commandButton value="All" id="btnAll" process="@all" update="grid" action="#{userView.save}" /> <p:commandButton value="Form" id="btnForm" process="@form" update="grid" action="#{userView.save}" /> <p:commandButton value="This" id="btnThis" process="@this" update="grid" action="#{userView.save}" /> <p:commandButton value="None" id="btnNone" process="@none" update="grid" action="#{userView.save}" /> <p:commandButton value="Parent" id="btnParent" process="@parent" update="grid" action="#{userView.save}" /> <p:commandButton value="This Surname" id="btnSurname" process="@this,surname" update="grid" action="#{userView.save}" /> </h:panelGrid> </h:form>
@Named @RequestScoped public class UserView { private String firstname; private String lastname; public String getFirstname() { return firstname; } public void setFirstname(String firstname) { this.firstname = firstname; } public String getLastname() { return lastname; } public void setLastname(String lastname) { this.lastname = lastname; } public void save() { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Welcome " + firstname + " " + lastname)); } }