Previous values are appearing after closing Modal Panel
ambrish_kumar Aug 10, 2009 12:55 PMHi Everyone,
I am rendering a modal panel on button click. Inside modal panel , I have entered some invalid values,so that the validation fails.
Now I close the modal panel,and again open it , this time the values entered are appearing for fields inside modal paenl.
Here is the code for rendering a modal panel.
<h:form id="showAddform">
<h:panelGrid columns="1" columnClasses="name" styleClass="panelGrid">
     <a:commandButton id="addUserButton" value="#{messages.btnNewUser}"
     reRender="commonPanel" action="#{userAction.renderAddUser}" />
</h:panelGrid>
</h:form>and code for modal panel is ,
<a:outputPanel id="commonPanel"> 
               <rich:modalPanel id="commonMp" styleClass="modalPanel" top="10"
                    keepVisualState="#{userAction.showOverlay}" autosized="true"
                    minWidth="600" minHeight="100"
                    style="background-image: url('../img/overlayBg.png');background-repeat: repeat;background-color: transparent;"
                    shadowDepth="#{messages.valShadowDepth}"
                    headerClass="modalPanel-header" controlsClass="modalPanel-controls">
                    <f:facet name="header">
                         <h:outputText value="#{userAction.modelPanelHead}" />
                    </f:facet>
                    <f:facet name="controls">
                         <h:graphicImage value="/img/closeButton.png" alt="X" border="0"
                              style="cursor: pointer; cursor: hand;"
                              onclick="Richfaces.hideModalPanel('commonMp')" >
                         <a:support event="onclick" action="#{userAction.closeLayer}" 
                         ajaxSingle="true" disableDefault="true" eventsQueue="closeLayerUserQueue" />     
                         </h:graphicImage>
                    </f:facet>
                    
                    <h:panelGrid styleClass="modalPanel-panelGrid">
                         <h:message styleClass="message" for="commonPanel" style="color:red;"/>
                         <h:form>
                         <h:panelGrid columns="1" columnClasses="name"
                                   rendered="#{userAction.formToLoad=='addUserForm'}"
                                   styleClass="panelGrid">
                                   
                         <s:div styleClass="modalPanel-panelGrid-container-div">
                         
                                   <h:panelGrid columns="1" border="0"
                                        columnClasses="formLabel,formValue" rowClasses="formLabel">
                                        <s:decorate id="userTypeDecoration" template="../layout/edit.xhtml">
                                             <ui:define name="label">#{messages.lblUserType}</ui:define>
                                             <h:selectOneMenu value="#{userBean.userType}" required="true" 
                                             requiredMessage="Value is required">
                                                  <s:selectItems value="#{userAction.userTypes}" var="cs"
                                                       label="#{cs.strUserType}"
                                                       noSelectionLabel="#{messages.defaultListItem}" />
                                                  <s:convertEntity />
                                             </h:selectOneMenu>
                                        </s:decorate>
                                   </h:panelGrid>
                                   <h:panelGrid columns="2" border="0"
                                        columnClasses="formLabel,formValue" rowClasses="formLabel">
                                        <s:decorate id="nameDecoration" template="../layout/edit.xhtml">
                                             <ui:define name="label">#{messages.lblUserName}</ui:define>
                                             <h:inputText id="name" value="#{userBean.strUserName}" required="true" 
                                             requiredMessage="Value is required"/>
                                        </s:decorate>                                        
                                   </h:panelGrid>
                                   <h:panelGrid columns="1" border="0" width="100%"
                                        columnClasses="formLabel,formValue" rowClasses="formLabel">
                                        <s:decorate id="descDecoration" template="../layout/edit.xhtml">
                                             <ui:define name="label">#{messages.lblDescription}</ui:define>
                                             <h:inputTextarea id="desc" rows="8" cols="65"
                                                  value="#{userBean.strDescription}" />
                                        </s:decorate>
                                   </h:panelGrid>                              
                                   
                                   <h:panelGrid width="330" id="save">
                                        <a:commandButton id="saveUserButton" value="#{messages.btnSave}"
                                             reRender="commonPanel"
                                             action="#{userAction.persistUserDetails}"
                                             rendered="#{userBean.iuserId == null}" />     
                                   </h:panelGrid>
                                   
                         </s:div>
                         </h:panelGrid> 
                    </h:form>                         
               </h:panelGrid>
          </rich:modalPanel>
</a:outputPanel>I am clearing the UserBean everytime I open or close the modalpanel.
userBean = null;
in both methods renderAddUser() and closeLayer().
Thanks
Ambrish
 
     
    