Partial processing enables executing certain components while ignoring others during a request.
<div class="card">
<h:form>
<h:panelGroup id="grid" layout="block" styleClass="formgrid grid p-fluid">
<div class="field col-12 md:col-4">
<p:outputLabel for="firstname" value="Firstname"/>
<p:inputText id="firstname" value="#{processView.firstname}"/>
</div>
<div class="field col-12 md:col-4">
<p:outputLabel for="middle" value="Middle"/>
<p:inputText id="middle" value="#{processView.middlename}"/>
</div>
<div class="field col-12 md:col-4">
<p:outputLabel for="surname" value="Surname"/>
<p:inputText id="surname" value="#{processView.lastname}" required="true"
requiredMessage="Surname is required"/>
</div>
</h:panelGroup>
<p:commandButton value="All" id="btnAll" process="@all" update="grid msgs" action="#{processView.save}" styleClass="mr-2"/>
<p:commandButton value="Form" id="btnForm" process="@form" update="grid msgs" action="#{processView.save}" styleClass="mr-2"/>
<p:commandButton value="This" id="btnThis" process="@this" update="grid msgs" action="#{processView.save}" styleClass="mr-2" resetValues="true" />
<p:commandButton value="None" id="btnNone" process="@none" update="grid msgs" action="#{processView.save}" styleClass="mr-2" resetValues="true" />
<p:commandButton value="Parent" id="btnParent" process="@parent" update="grid msgs" action="#{processView.save}" styleClass="mr-2"/>
<p:commandButton value="This Surname" id="btnSurname" process="@this,surname" update="grid msgs" action="#{processView.save}"/>
<p:messages id="msgs"/>
</h:form>
</div>