Announcement

Collapse
No announcement yet.

Navigation Rule from action outcome does not match

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Navigation Rule from action outcome does not match

    Hallo, ich möchte gerne über einen command button oder einen command link ein action event erzeugen, dass eine dynamische Navigation ermöglicht. Den Button/bzw den Link bekomme ich auch hin. Ebenso wird die Methode (edit_customer) die ich dem Button/link als action attribute übergebe auch ausgeführt und mir der gewünschte Wert "success" zurückgeliefert. Danach wird jedoch nicht die Seite die ich in der Navigation Rule für die action rule und das outcome definiert habe aufgerufen sondern wieder die Ursprungsseite.

    - Woran kann es liegen, dass die Rule nicht matched bzw. Gibt es eine Möglichkeit dies mit Eclipse irgendwie zu debuggen?

    - Die Buttons stehen in einer DataTable die wiederum von einem Fomr umgeben ist. Kann das ein Problem sein?


    <h:commandButton value="edit" id="submit" action="#{MySession.edit_customer}">

    <navigation-rule>
    <display-name>customer_list</display-name>
    <from-view-id>/customer_list.jsp</from-view-id>
    <navigation-case>
    <from-action>#{partner_session.edit_customer}</from-action>
    <from-outcome>success</from-outcome>
    <to-view-id>/customer_edit.jsp</to-view-id>
    </navigation-case>
    </navigation-rule>

  • #2
    Vielleicht ist dies noch von Bedeutung. Die angezeigte Tabelle ist eine t:dataTable Tabelle die in ein Form eingebettet ist um mit Hilfe von t:dataScroller durch die Tabelle zu navigieren.

    Jede Zeile hat einen Button um den jeweiligen Datensatz zu bearbeiten. D.h. diese Buttons liegen ebenfalls innerhalb des Forms das ioch für die Tabellennavigation verwende.

    Wird durch die Verwendung von t:dataTable in Kombination mit einem Form mein "success" outcome abgefangen und damit nicht mehr ausgewertet? Falls ja was ist hier die Lösung?

    Comment


    • #3
      ohne JSF know How zwei Ideen

      Hallo bergedorfer (bei Hamburg?),
      zwei Ideen:
      1. Vielleicht wird in der Form ein Validierungsfehler festgestellt. Check mal ob die Errors leer sind.
      2. So wie Dein Button aussieht, wird der hinter allen Customereinträgen gleich heißen und den gleichen value haben. Dann kann anhand des Posts nicht festgestellt werden, welcher Customer zum editieren ausgewählt wurde. Wenn das so ist, ist der Wert in der zu customer_edit.jsp gehörenden Klasse möglicherweise null. Wenn Du das überpüfst und einen redirect auf customer_list.jsp machst, könnte das erklären, wieso immer wieder die Kundenliste erscheint
      http://www.winfonet.eu

      Comment


      • #4
        Hamburg bei Bergedorf ;-)

        Vielen Dank für die Antwort. Ich bin gerade schon ein Stück weitergekommen:

        Mein Plan war die Buttons rufen als im action attribute eine Klassemethode auf die die einen Handler für die folgenden Seite aufbaut der die Daten des zu bearbeitenden Datensatzes enthält und im Erfolgsfall "success" zurück gibt. Das Funktioniert soweit auch.

        Was nicht funktioniert ist, dass die Navigationsrule auf dem Rückgabewert eben dieser Klassenmethode reagiert also

        <navigation-rule>
        <display-name>customer_list</display-name>
        <from-view-id>/customer_list.jsp</from-view-id>
        <navigation-case>
        <from-action>#{partnerSession.edit_customer}</from-action>
        <from-outcome>success</from-outcome>
        <to-view-id>/customer_edit.jsp</to-view-id>
        </navigation-case>
        </navigation-rule>

        das from-action tag fasst hier irgendwie nicht. Lasse ich das from-action tag weg, geht es jetzt.

        Comment

        Working...
        X