2017-12-07 5 views
0

Hallo, ich benutze Feder webflow2.4.4 mit Feder4.1.3. Ich versuche, Werte zwischen zwei Flüssen wie unten zu übergeben. Sendewert von Flow erster xmlSpring webflow Wert des zweiten Parameters wird nicht an den Subflow übergeben

<action-state id="submit"> 
     <evaluate expression="someMethod(form)" result="flowScope.saveStatus" /> 
     <set name="flowScope.value1" value="form.value1" /> 
     <set name="flowScope.value2" value="form.value2" /> 
     <transition on="success" to="view" /> 
    </action-state> 

    <subflow-state id="view" subflow="flow/path/view"> 
     <input name="value1" value="value1" /> 
     <input name="value2" value="value2" /> 
     ... 
    </subflow-state> 

Flaschenzug Daten in Strömungs zweite Ansicht xml

<input name="value1" type="string" /> 
    <input name="value2" type="string" /> 

jetzt in Sicht xml ich in der Lage bin Wert erhalten für „Wert1“, was ich von dem ersten Strömung vergangen, aber immer Wert für 'value2' ist null.

Ich habe versucht, die Position in der ersten Strömung, wie unten

<action-state id="submit"> 
     <evaluate expression="someMethod(form)" result="flowScope.saveStatus" /> 
     <set name="flowScope.value2" value="form.value2" /> 
     <set name="flowScope.value1" value="form.value1" /> 
     <transition on="success" to="view" /> 
    </action-state> 

    <subflow-state id="view" subflow="flow/path/view"> 
     <input name="value2" value="value2" /> 
     <input name="value1" value="value1" /> 
     ... 
    </subflow-state> 

Jetzt kann ich bin Schaltwert von ‚value2‘ sehen, aber Wert für Empfangs ‚value1‘ ist null.

Was ist hier falsch? siehe unten Debug-Protokolle für beide Beispiel

1. Versuch

DEBUG SubflowState - Aufruf Subflow 'Flow/path/view' mit Eingabekarte [ 'value1' -> 'ABCDF', 'value2' -> [null ]]

2. Versuch

DEBUG SubflowState - Subflow 'Flow/path/view' mit Eingabekarte [ 'value2' Calling -> 'ABCDF', 'value1' -> [null]]

Ich möchte beide Werte an den zweiten Fluss übergeben, aber der zweite Parameter wird irgendwie übersprungen.

Antwort

1

dies ist ein sehr häufiger Fehler. Der Aktionszustand wechselt, wenn er erfolgreich ist, und beendet die Auswertung der restlichen Befehle.

müssen Sie <on-entry> verwenden, um die beiden zu trennen:

  1. die Befehle, die Sie festlegen möchten oder bewerten (Wert1 & Wert2)
  2. den Befehl, der für den Übergang ausgewertet werden, hier Somemethod (Form))


Verwendung dieses stattdessen:

<action-state id="submit"> 
    <on-entry> 
     <set name="flowScope.value2" value="form.value2" /> 
     <set name="flowScope.value1" value="form.value1" /> 
    </on-entry> 
    <evaluate expression="someMethod(form)" result="flowScope.saveStatus" /> 
    <transition on="success" to="view" /> 
</action-state> 
+0

Danke, aber was sind Werte, wenn value1 und value2 von der Auswertung des Ausdrucks abhängig sind? –

+0

dann was soll Ihr Aktionszustand zu "Erfolg" bewerten? Teilen Sie was auch immer Sie tun in 2 Methode: 'processValues ​​()' und 'evaluateResult()' und haben die erste in der '' – rptmat57

+1

gibt es oft mehrere Möglichkeiten, Dinge mit webflow – rptmat57

2

Dank rptmat57, unter Code arbeitete für mich.

<action-state id="submit"> 
    <evaluate expression="someMethod(form)" result="flowScope.saveStatus" /> 
    <transition on="success" to="view" > 
     <set name="flowScope.value2" value="form.value2" /> 
     <set name="flowScope.value1" value="form.value1" /> 
    </transition> 
</action-state> 
+1

zu tun, das funktioniert in Ihrem Fall besser tatsächlich – rptmat57

Verwandte Themen