Note that the below renderResponse() invocation will cause the LifecycleImpl to stop processing after the ValueChangeHandler is invoked because FacesContext.getRenderResponse() returns true, basically halting further processing [aka, no model update]. It sounds like this is not what you want to happen.
-----Original Message----- From: Bruno Aranda [mailto:[EMAIL PROTECTED] Sent: Tue 6/13/2006 4:37 PM To: MyFaces Discussion Subject: Re: Conditionally rendered fields not retaing values Does it work if you remove the immediate="true" attribute from the selectOneRadio (see this docs to see if you really need it [1]), and remove the facesContext.renderResponse() line (not needed). Let's see! Bruno [1] http://wiki.apache.org/myfaces/How_The_Immediate_Attribute_Works On 6/13/06, Meghana <[EMAIL PROTECTED]> wrote: > I am sorry I should have included my code snippet before itself. > Here we go! > > <h:outputText value="#{Message.hardware_type}" /> > <h:selectOneRadio value="#{ServiceBean.hardwareType}" > onclick="submit()" immediate="true" > valueChangeListener="#{ServiceBean.hardwareTypeChanged}"> > <f:selectItems value="#{ServiceBean.HWTypes}"/> > </h:selectOneRadio> > > public void hardwareTypeChanged(ValueChangeEvent event) > throws SQLException, Exception{ > FacesContext context = FacesContext.getCurrentInstance(); > String prevCategorySelected = (String)event.getOldValue(); > String newCategorySelected = (String)event.getNewValue(); > > if(!newCategorySelected.equalsIgnoreCase(prevCategorySelected)){ > // Value changed. Change the drop down values. > if(newCategorySelected.equals("Desktop")){ > desktopSelected = true; > debug("Setting desktopSelected field to: > "+isDesktopSelected()); > } > else if(newCategorySelected.equals("Laptop")){ > laptopSelected = true; > debug("Setting laptopSelected field to: > "+isLaptopSelected()+" Laptop Type: "+laptopType); > } > context.renderResponse(); > } > } > } > > Based on what hardware type is selected Desktop items/laptop items are > displayed. > The code for that is > <h:outputText value="#{Message.desktop_type}" > rendered="#{ServiceBean.desktopSelected}"/> > <h:panelGroup rendered="#{ServiceBean.desktopSelected}"> > <h:selectOneRadio value="#{ServiceBean.desktopType}" > id="desktop_type"> > <f:selectItem itemValue="Standard User Desktop" > itemLabel="Standard User Desktop" /> > <f:selectItem itemValue="Non User Desktop" > itemLabel="Non User Desktop" /> > </h:selectOneRadio> > <h:message styleClass="error" for="desktop_type"/> > </h:panelGroup> > <h:outputText value="#{Message.laptop_type}" > rendered="#{ServiceBean.laptopSelected}"/> > <h:panelGroup rendered="#{ServiceBean.laptopSelected}"> > <h:selectOneRadio value="#{ServiceBean.laptopType}" > id="laptop_type"> > <f:selectItem itemValue="Standard User Laptop" > itemLabel="Standard User Laptop" /> > <f:selectItem itemValue="Power User Laptop" > itemLabel="Power User Laptop" /> > </h:selectOneRadio> > <h:message styleClass="error" for="laptop_type"/> > </h:panelGroup> > <h:outputText value="#{Message.docking_station}" > rendered="#{ServiceBean.laptopSelected}"/> > <h:panelGroup rendered="#{ServiceBean.laptopSelected}"> > <h:selectOneRadio value="#{ServiceBean.dockingStation}" > id="docking_station"> > <f:selectItem itemValue="Yes" itemLabel="Yes" /> > <f:selectItem itemValue="No" itemLabel="No" /> > </h:selectOneRadio> > <h:message styleClass="error" for="docking_station"/> > </h:panelGroup> > <h:outputText value="#{Message.wireless_access}" > rendered="#{ServiceBean.laptopSelected}"/> > <h:panelGroup rendered="#{ServiceBean.laptopSelected}"> > <h:selectOneRadio value="#{ServiceBean.wirelessAccess}" > id="wireless_access"> > <f:selectItem itemValue="Yes" itemLabel="Yes" /> > <f:selectItem itemValue="No" itemLabel="No" /> > </h:selectOneRadio> > <h:message styleClass="error" for="wireless_access"/> > </h:panelGroup> > > > > Bruno Aranda <[EMAIL PROTECTED]> wrote: > > And what about the "immediate" attributes? Are you using them? Can you > show an snippet of your code? > > Bruno > > On 6/13/06, Meghana wrote: > > Its already in session scope :-( > > > > > > Bruno Aranda wrote: > > > > Could you try if that works if your bean is in session scope? > > > > Bruno > > > > On 6/13/06, Meghana wrote: > > > Hi, > > > I have a form in which the displayed input fields change based on a > radio > > > button field. When ever the field value is changed a corresponding > > > valuechangelistener method is called and then the new set of input > fields > > > are displayed. But the values entered for those conditionally rendered > > > fields are not retaining values in the backing bean. They are all null. > > I've > > > been banging my head over this for quite a while. > > > Any ideas please! > > > > > > Thanks a lot, > > > -M > > > > > > > > > __________________________________________________ > > > Do You Yahoo!? > > > Tired of spam? Yahoo! Mail has the best spam protection around > > > http://mail.yahoo.com > > > > > > > > > > __________________________________________________ > > Do You Yahoo!? > > Tired of spam? Yahoo! Mail has the best spam protection around > > http://mail.yahoo.com > > > > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com
<<winmail.dat>>

