Spring Webflow : wie gebe ich ein Attribut von einem Fluss zum anderen im übergang?
Habe ich einen action-Zustand, wird ein Ausdruck ausgewertet und dann übergänge zu verschiedenen anderen Staaten, je nach dem Ergebnis. Eines der Ergebnis-Staaten ist ein subflow-Zustand, dass die Hände die Kontrolle an einem anderen Fluss, B.;
<action-state id="doWork">
<evaluate expression="someAction.doWork(someInput)" />
<transition on="WORKSUCCESS" to="workSuccess" />
<transition on="WORKFAIL" to="fixFail" />
</action-state>
<subflow-state id="fixFail" subflow="someOtherPlace/someOtherWorkToFixFail">
<input name="someNumber" value="1" type="java.lang.Integer" />
<transition on="finish" to="workSuccess" />
</subflow-state>
Wie Sie sehen können ich kann pass eine Eingabe in der subflow über den input-tag, aber meine Frage ist wie kann ich angeben, und pass zusätzliche Eingänge, den ich haben möchte vorhanden, wenn und nur wenn der subflow-state genannt wird, aus dem übergang WORKFAIL? Übernehmen Sie den subflow-state "fixFail" genannt werden kann, von anderen action-Staaten.
Habe ich versucht, Dinge, die der folgenden ähnelt, aber ohne Wirkung;
<action-state id="doWork">
<evaluate expression="someAction.doWork(someInput)" />
<transition on="WORKSUCCESS" to="workSuccess" />
<transition on="WORKFAIL" to="fixFail">
<attribute name="newInput" value="3000" type="java.lang.Integer" />
</transition>
</action-state>
<subflow-state id="fixFail" subflow="someOtherPlace/someOtherWorkToFixFail">
<input name="someNumber" value="1" type="java.lang.Integer" />
<input name="someNumber2" value="flowScope.newInput" type="java.lang.Integer" />
<transition on="finish" to="workSuccess" />
</subflow-state>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es drei Möglichkeiten, wie Sie dies tun können. Sie können es tun, durch das Gespräch, Sitzung oder als Attribute übergeben.
ConversationScope: Wenn ein Feld in der
conversationScope
das Feld ist sichtbar überall in dieser speziellen Strömung sowie das flow subflows (und Ihren übergängen)SessionScope: (Wahrscheinlich nicht, was Sie
wollen) Ist für alle sichtbar und fließt
Ihre subflows
Schließlich übergeben Sie den Bereich, der als Attribut in der subflow-Zustand zum Beispiel
In Ihrem subflow s xml
In diesem Beispiel someNumber und someNumber zwei übergeben werden als Attribute der subflow. In die kann man bewerten wie
${someNumber}
Edit:
Dies ist die Adresse Ihres Kommentars Frage. Wenn Sie wollte, um eine variable in das Gespräch Bereich auf einem bestimmten übergang, die Sie tun können:
Dann in Ihre jsp -