Enhanced user experience with the powerful and easy to use Ajax Framework.
<div class="card">
<h:form>
<h5 class="mt-0">Basic</h5>
<div class="formgrid grid p-fluid">
<div class="field col-12 md:col-6">
<p:outputLabel for="name" value="Name"/>
<p:inputText id="name" value="#{basicView.text1}"/>
<small>Value: <h:outputText id="display" value="#{basicView.text1}"/></small>
</div>
</div>
<p:commandButton value="Submit" update="display"/>
</h:form>
</div>
<div class="card">
<h:form>
<h5 class="mt-0">Action Listener</h5>
<p class="mt-0">Counter: <h:outputText id="output" value="#{basicView.number}"/></p>
<p:commandButton value="Increment" action="#{basicView.increment}" update="output"/>
</h:form>
</div>
<div class="card">
<h:form>
<h5 class="mt-0">Events</h5>
<div class="formgrid grid p-fluid">
<div class="field col-12 md:col-4">
<p:outputLabel for="@next" value="KeyUp"/>
<p:inputText id="firstname" value="#{basicView.text2}">
<p:ajax event="keyup" update="display2" process="@this"/>
</p:inputText>
<small>Value: <h:outputText id="display2" value="#{basicView.text2}"/></small>
</div>
<div class="field col-12 md:col-4">
<p:outputLabel for="@next" value="Blur"/>
<p:inputText id="middlename" value="#{basicView.text3}">
<p:ajax event="blur" update="display3"/>
</p:inputText>
<small>Value: <h:outputText id="display3" value="#{basicView.text3}"/></small>
</div>
<div class="field col-12 md:col-4">
<p:outputLabel for="@next" value="Input"/>
<p:inputText id="lastname" value="#{basicView.text4}">
<p:ajax event="input" update="display4"/>
</p:inputText>
<small>Value: <h:outputText id="display4" value="#{basicView.text4}"/></small>
</div>
</div>
<h5>Listener</h5>
<div class="formgrid grid p-fluid">
<div class="field col-12 md:col-4">
<p:outputLabel for="@next" value="Keyup"/>
<p:inputText id="counter" value="#{basicView.text5}">
<p:ajax event="keyup" update="display5" listener="#{basicView.handleKeyEvent}"/>
</p:inputText>
<small>Value: <h:outputText id="display5" value="#{basicView.text5}"/></small>
</div>
</div>
</h:form>
</div>
<div class="card">
<h:form>
<h5 class="mt-0">Advanced</h5>
<p:growl id="msgs" showDetail="true" skipDetailIfEqualsSummary="true"/>
<div class="formgrid grid p-fluid">
<div class="field col-12 md:col-6">
<p:outputLabel for="country" value="Country"/>
<p:selectOneMenu id="country" value="#{basicView.country}">
<p:ajax listener="#{basicView.onCountryChange}" update="city"/>
<f:selectItem itemLabel="Select Country" itemValue="" noSelectionOption="true"/>
<f:selectItems value="#{basicView.countries}"/>
</p:selectOneMenu>
</div>
<div class="field col-12 md:col-6">
<p:outputLabel for="city" value="City"/>
<p:selectOneMenu id="city" value="#{basicView.city}">
<f:selectItem itemLabel="Select City" itemValue="" noSelectionOption="true"/>
<f:selectItems value="#{basicView.cities}"/>
</p:selectOneMenu>
</div>
</div>
<p:commandButton value="Submit" update="msgs" action="#{basicView.displayLocation}" icon="pi pi-check"/>
</h:form>
</div>