I am using PrimeFaces 3.3.1 and JSF 2.0, and the server is using Oracle Weblogic 11gR1
Below is my code.
<p:panel id="personDetailsPanelId" header="#{msg.personDetails}"> <h:panelGrid columns="3" style="align:center"> <h:outputText value="#{msg.accountCategory}" /> <p:spacer width="10px" /> <p:selectOneRadio id="singleJointAccountRadioId" layout="horizontal" value="#{captureAccountDetailBackingBean.accountCategory}"> <f:selectItems value="#{captureAccountDetailBackingBean.accountcategoryList}"> </f:selectItems> <p:ajax process="@this" event="change" update="@form" partialSubmit="true" /> </p:selectOneRadio> </h:panelGrid> <p:spacer height="30px;" /> <h:panelGrid id="accountDetailsId" columns="3"> <h:panelGrid id="firstAccountHolderId" columns="2" styleClass="float-left "> <p:graphicImage value="/com/cas/pages/common/images/person_icon.jpg" /> <h:outputText value="#{msg.firstAccountHolder}" /> <h:panelGrid columns="2"> <h:outputText value="#{msg.nameofPerson}" /> <span style="color: red;">*</span> </h:panelGrid> <p:inputText value="#{captureAccountDetailBackingBean.accountHolder1.personName}" size="25" required="true" /> <h:panelGrid columns="2"> <h:outputText value="#{msg.address}" /> <span style="color: red;">*</span> </h:panelGrid> <p:inputTextarea value="#{captureAccountDetailBackingBean.accountHolder1.personAddress}" rows="3" autoResize="false" required="true" /> <h:panelGrid columns="2"> <h:outputText value="#{msg.dateOfBirth}" /> <span style="color: red;">*</span> </h:panelGrid> <p:calendar value="#{captureAccountDetailBackingBean.accountHolder1.personDOB}" navigator="true" showOn="button" size="6" required="true" pattern="dd/MM/yyyy" /> <h:panelGrid columns="2"> <h:outputText value="#{msg.age}" /> <span style="color: red;">*</span> </h:panelGrid> <p:inputText value="#{captureAccountDetailBackingBean.accountHolder1.personAge}" size="2" required="true" /> </h:panelGrid> <p:spacer width="130px;" /> <h:panelGrid id="secondAccountHolderId" columns="2" styleClass="float-left" rendered="#{captureAccountDetailBackingBean.accountCategory eq 'Joint'}"> <p:graphicImage value="/com/cas/pages/common/images/person_icon.jpg" /> <h:outputText value="#{msg.secondAccountHolder}" /> <h:panelGrid columns="2"> <h:outputText value="#{msg.nameofPerson}" style="font-size:15px;" /> <span style="color: red;">*</span> </h:panelGrid> <p:inputText value="#{captureAccountDetailBackingBean.accountHolder2.personName}" styleClass="inputText-style" size="25" required="true" /> <h:panelGrid columns="2"> <h:outputText value="#{msg.address}" /> <span style="color: red;">*</span> </h:panelGrid> <p:inputTextarea value="#{captureAccountDetailBackingBean.accountHolder2.personAddress}" rows="3" autoResize="false" styleClass="inputText-style" size="25" required="true" /> <h:panelGrid columns="2"> <h:outputText value="#{msg.dateOfBirth}" /> <span style="color: red;">*</span> </h:panelGrid> <p:calendar value="#{captureAccountDetailBackingBean.accountHolder2.personDOB}" navigator="true" showOn="button" size="6" styleClass="inputText-style" required="true" /> <h:panelGrid columns="2"> <h:outputText value="#{msg.age}" /> <span style="color: red;">*</span> </h:panelGrid> <p:inputText value="#{captureAccountDetailBackingBean.accountHolder2.personAge}" size="2" styleClass="inputText-style" required="true" /> </h:panelGrid> </h:panelGrid> <div style="clear: both;" /> </p:panel>
Backup bean code:
public class CaptureAccountDetailBackingBean { // For Radio Button SelectItem[] accountcategoryList = {new SelectItem("Single", "Single"), new SelectItem("Joint","Joint")}; String accountCategory; AccountHolderDetailVO accountHolder1 = new AccountHolderDetailVO(); AccountHolderDetailVO accountHolder2 = new AccountHolderDetailVO(); // setter and getters }
AccountHolderDetailVO
public class AccountHolderDetailVO { String personName; String personAge; Date personDOB; String personAddress;
The default radio button is "Single". The secondAccountHolderId panel is displayed when the user clicks the Share button.
When you enter any values โโin the panel "firstAccountHolderId" or "secondAccountHolderId" and changing the switch, the entered values โโare lost.
source share