Hi,

see jsf spec 1.1 : 7.4.2 Default NavigationHandler Implementation

Regards
  Volker

Matthias Kahlau wrote:
> 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.
> 
> 

-- 
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