Hi Volker,

I just tried returning null from the action method, and the entered values
of the inputTextarea and selectBooleanCheckbox are preserved, but not the
selection of the selectOneRadio component!


Regards,

Matthias

> -----Ursprüngliche Nachricht-----
> Von: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Auftrag
> von Matthias Kahlau
> Gesendet: Sonntag, 1. Januar 2006 23:12
> An: MyFaces Discussion
> Betreff: AW: AW: AW: EditableValueHolder rendering behavior / Restore
> View
>
>
> Hi Volker,
>
>
> thanks for your support. I didn't know that the view is newly created. Do
> you know a source where this is documented (apart from the source code)?
>
>
> Regards,
>
> Matthias
>
> > -----Ursprüngliche Nachricht-----
> > Von: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] Auftrag
> > von Volker Weber
> > Gesendet: Sonntag, 1. Januar 2006 22:52
> > An: MyFaces Discussion
> > Betreff: Re: AW: AW: EditableValueHolder rendering behavior / Restore
> > View
> >
> >
> > Hi Matthias,
> >
> > i think the problem is the return value of your action method.
> >
> > I'm not really sure, so please correct me if the following is incorrect.
> >
> > If a action method returns a value != null the navigation cames in, then
> > a new view is created, also if the new viewId is the same as the old
> > one. If the action method returns null the old view is rerendered.
> >
> > The reason for persistent value in one of your components is the
> > component binding.
> >
> > Try returning null in deleteAuswMoeglichkeiten().
> >
> > Regards
> >   Volker
> >
> > Matthias Kahlau wrote:
> > > Hi!
> > >
> > > Happy new year :)
> > >
> > >
> > > Here are the code snippets:
> > >
> > > --------------
> > > The JSF page:
> > > --------------
> > > ...
> > >
> > > <h:form>
> > >
> > > ...
> > >
> > > <%-- the inputTextarea which is rendered empty again after the
> > JSF page is
> > > redisplayed --%>
> > >     <h:panelGroup>
> > >       <h:outputLabel for="fragetext"
> > >         value="Frage*: "
> > >         styleClass="formLabelTop"
> > >         lang="de"
> > >         title="Textfeld zur Eingabe der Frage" />
> > >       <t:inputTextarea id="fragetext"
> > >         value="#{EinfAuswFrageBacking.einfAuswFrage.fragetext}"
> > >         required="true"
> > >         cols="100"
> > >         rows="3"
> > >         title="Textfeld zur Eingabe der Frage">
> > >         <f:validateLength maximum="256" />
> > >       </t:inputTextarea>
> > >       <f:verbatim><br/></f:verbatim>
> > >       <h:message for="fragetext"
> > >         styleClass="error"
> > >         lang="de"
> > >         title="Fehlermeldung für das Frage Textfeld" />
> > >     </h:panelGroup>
> > >
> > > <%-- the selectBooleanCheckbox which is rendered empty again
> > after the JSF
> > > page is redisplayed --%>
> > >   <h:panelGroup>
> > >       <h:outputLabel for="mussFrage" value="Antwort erforderlich: "
> > >         styleClass="formLabel"
> > >         lang="de"
> > >         title="Auswahlfeld zur Angabe, ob die Antwort
> > erforderlich ist" />
> > >       <t:selectBooleanCheckbox id="mussFrage"
> > >         value="#{EinfAuswFrageBacking.einfAuswFrage.mussFrage}"
> > >         required="false"
> > >         lang="de"
> > >         title="Auswählen, falls Antwort erforderlich" />
> > >       <h:outputText escape="false" value="&nbsp;Ja, Frage muss
> > beantwortet
> > >         werden"
> > >         styleClass="formText"
> > >         lang="de"
> > >         title="Auswählen, falls Antwort erforderlich" />
> > >     </h:panelGroup>
> > >
> > > <%-- the selectOneRadio which is rendered empty again after the
> > JSF page is
> > > redisplayed --%>
> > >   <h:panelGrid columns="1">
> > >       <t:column>
> > >         <h:outputLabel for="auswMoeglichkeitRadios"
> > >           value="Auswahlmöglichkeiten anzeigen:"
> > >           styleClass="formLabel"
> > >           lang="de"
> > >           title="Anzeigeeigenschaften der Auswahlmöglichkeiten" />
> > >         <f:verbatim><br/></f:verbatim>
> > >         <t:selectOneRadio id="auswMoeglichkeitRadios"
> > >           value="#{EinfAuswFrageBacking.auswMoeglichkeitOpt}"
> > >           required="true"
> > >           layout="spread"
> > >           styleClass="formText"
> > >           lang="de"
> > >           title="Radiobuttons zur Auswahl der Anzeigeeigenschaften der
> > >             Auswahlmöglichkeiten">
> > >           <f:selectItems
> > >             value="#{EinfAuswFrageBacking.auswMoeglichkeitOptions}" />
> > >       </t:selectOneRadio>
> > >       </t:column>
> > >
> > > <%-- the inputText which is NOT rendered empty again after the
> > JSF page is
> > > redisplayed (the value entered is rendered) --%>
> > >       <t:column>
> > >         <t:radio for="auswMoeglichkeitRadios" index="0" />
> > >         <t:inputText id="anzahlSpalten"
> > >           binding="#{EinfAuswFrageBacking.inputTextAnzahlSpalten}"
> > >           value="#{EinfAuswFrageBacking.einfAuswFrage.spalten}"
> > >           required="false"
> > >           readonly="false"
> > >           disabled="false"
> > >           maxlength="2"
> > >           size="2"
> > >           title="Textfeld zur Eingabe der Spaltenanzahl"
> > >           immediate="false">
> > >           <f:validateLongRange minimum="1" maximum="12" />
> > >         </t:inputText>
> > >         <h:outputText escape="false"
> > >           value="&nbsp;(1 bis 12)"
> > >           styleClass="formText"
> > >           lang="de"
> > >           title="Zahlenbereich ist 1 bis 12" />
> > >         <f:verbatim><br/></f:verbatim>
> > >         <h:message for="anzahlSpalten"
> > >           styleClass="error"
> > >           lang="de"
> > >           title="Fehlermeldung für das Spaltenanzahl Textfeld" />
> > >       </t:column>
> > >
> > >       <t:column>
> > >         <t:radio for="auswMoeglichkeitRadios" index="1" />
> > >       </t:column>
> > >     </h:panelGrid>
> > >
> > >
> > > <%-- the dataTable from which rows are deleted with the button
> > below --%>
> > >     <t:dataTable id="dataTableAuswahlmoeglichkeiten"
> > >       binding="#{EinfAuswFrageBacking.dataTable}"
> > >       value="#{EinfAuswFrageBacking.auswMoeglichkeitenModel}"
> > >       var="row"
> > >       renderedIfEmpty="true"
> > >       preserveDataModel="false">
> > >
> > >       <t:column width="30">
> > >         <t:selectBooleanCheckbox
> > binding="#{EinfAuswFrageBacking.checkbox}"
> > >           required="false"
> > >           lang="de"
> > >           title="Auswahlmoeglichkeit auswählen zum Löschen"
> > >           immediate="false" />
> > >       </t:column>
> > >
> > >      ...
> > >
> > >     </t:dataTable>
> > >
> > >
> > > <%-- the action button to delete rows with --%>
> > >     <h:commandButton value="Auswahl Entfernen"
> > >       action="#{EinfAuswFrageBacking.deleteAuswMoeglichkeiten}"
> > >       immediate="true" />
> > >
> > > ...
> > >
> > > </h:form>
> > >
> > > ...
> > >
> > > -----------------------------------------------------------------
> > > The action method of the EinfAuswFrageBacking.java Backing-Bean:
> > > -----------------------------------------------------------------
> > >
> > > public String deleteAuswMoeglichkeiten() {
> > >     List toDelete = this.getSelectedAuswMoeglichkeiten();
> > >     Iterator it = toDelete.iterator();
> > >
> > >     while (it.hasNext()) {
> > >       this.auswMoeglichkeitenList.remove(it.next());
> > >     }
> > >
> > >
> > >     int size = this.auswMoeglichkeitenList.size();
> > >     for (int i = 0; i < size; i++) {
> > >       Auswahlmoeglichkeit am =
> > > (Auswahlmoeglichkeit)this.auswMoeglichkeitenList
> > >         .get(i);
> > >
> > >       am.setAuswahlindex(new Integer(i + 1));
> > >     }
> > >
> > >
> > >     this.checkbox.setSelected(false);
> > >
> > >     return Constants.ACTION_SUCCESS;
> > >   }
> > >
> > >
> > > ----------------
> > > faces-config.xml:
> > > ----------------
> > >
> > > <navigation-rule>
> > >   <from-view-id>/Management/Fragen/EinfAuswFrage.jsp</from-view-id>
> > >           <navigation-case>
> > >
> >
> <from-action>#{EinfAuswFrageBacking.deleteAuswMoeglichkeiten}</from-action
> > >
> > >           <from-outcome>success</from-outcome>
> > >
> > <to-view-id>/Management/Fragen/EinfAuswFrage.jsp</to-view-id>
> > >   </navigation-case>
> > > </navigation-rule>
> > >
> > >
> > >
> > > By the way: the inputTextarea is not the only component which
> > is rendered
> > > empty when the page is redisplayed after submitting it
> > non-empty - it also
> > > happens to the selectBooleanCheckbox, and to the
> > selectOneRadio, but not to
> > > the inputText, which renders the value entered before
> > submitting the page
> > > (In my last email, I spuriously wrote that the inputText is
> > rendered empty,
> > > but it actually was an inputTextarea!).
> > >
> > >
> > > Regards,
> > >
> > > Matthias
> > >
> > >
> > >>-----Ursprüngliche Nachricht-----
> > >>Von: [EMAIL PROTECTED]
> >
> >>[mailto:[EMAIL PROTECTED] Auftrag
> > >>von Volker Weber
> > >>Gesendet: Samstag, 31. Dezember 2005 13:22
> > >>An: MyFaces Discussion
> > >>Betreff: Re: AW: EditableValueHolder rendering behavior / Restore View
> > >>
> > >>
> > >>Hi,
> > >>
> > >>Matthias, can you post the relevant jsf code, and the
> > >>action/actionListener code?
> > >>
> > >>This may help us to see what's wrong.
> > >>
> > >>Regards
> > >>  Volker
> > >>
> > >>Matthias Kahlau wrote:
> > >>
> > >>>Hi Simon,
> > >>>
> > >>>
> > >>>
> > >>>>Perhaps your button is inside a different form from the one
> containing
> > >>>>your input text? HTML only supports submitting one form, so all
> > >>>>components in other forms will see their input as missing, ie
> > will have
> > >>>>their submitted value reset..
> > >>>
> > >>>
> > >>>Actually not - all components are contained in the same form....
> > >>>
> > >>>Looks buggy....
> > >>>
> > >>>
> > >>>Regards,
> > >>>
> > >>>Matthias
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>-----Ursprüngliche Nachricht-----
> > >>>>Von: [EMAIL PROTECTED]
> > >>>>[mailto:[EMAIL PROTECTED]
> > m Auftrag
> > >>>>von Simon Kitching
> > >>>>Gesendet: Samstag, 31. Dezember 2005 05:33
> > >>>>An: MyFaces Discussion
> > >>>>Betreff: Re: EditableValueHolder rendering behavior / Restore View
> > >>>>
> > >>>>
> > >>>>Matthias Kahlau wrote:
> > >>>>
> > >>>>
> > >>>>>Hi all!
> > >>>>>
> > >>>>>
> > >>>>>I have an non-immediate inputText in my form, and an immediate
> > >>>>
> > >>>>commandButton
> > >>>>
> > >>>>
> > >>>>>to delete some selected rows in a table. When the user enters
> > >>>>
> > >>>>some text in
> > >>>>
> > >>>>
> > >>>>>the inputText and deletes some rows after that, the same
> JSF page is
> > >>>>>redisplayed, but the inputText is empty again. Why isn't the
> > >>>>
> > >>>>submitted value
> > >>>>
> > >>>>
> > >>>>>of the inputText rendered?
> > >>>>
> > >>>>It will be in the usual case.
> > >>>>
> > >>>>Perhaps your button is inside a different form from the one
> containing
> > >>>>your input text? HTML only supports submitting one form, so all
> > >>>>components in other forms will see their input as missing, ie
> > will have
> > >>>>their submitted value reset..
> > >>>>
> > >>>>Regards,
> > >>>>
> > >>>>Simon
> > >>>
> > >>>
> > >>--
> > >>Don't answer to From: address!
> > >>Mail to this account are droped if not recieved via mailinglist.
> > >>To contact me direct create the mail address by
> > >>concatenating my forename to my senders domain.
> > >
> > >
> >
> > --
> > Don't answer to From: address!
> > Mail to this account are droped if not recieved via mailinglist.
> > To contact me direct create the mail address by
> > concatenating my forename to my senders domain.
>

Reply via email to