Mam stan akcji, który ocenia wyrażenie, a następnie przechodzi do różnych innych stanów w zależności od wyniku. Jednym ze stanów wyniku jest stan podrzędny, który przekazuje kontrolę do innego przepływu, przykład;Spring Webflow: jak przekazać atrybut z jednego przepływu do drugiego podczas przejścia?
<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>
Jak widać mogę przejść wejście do subflow poprzez tagu wejściowego ale moje pytanie brzmi: w jaki sposób mogę określić i przekazać dodatkowe wejścia, które chcę występować wtedy i tylko wtedy, gdy subflow-stan jest nazywany z przejścia WORKFAIL? Załóżmy, że stan podrzędny "fixFail" można wywołać z innych stanów akcji.
Próbowałem rzeczy podobnych do poniższych bez żadnego efektu;
<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>
Hmmm conversationScope brzmi jak co chcę w tym przypadku myślę. Zgadzam się, że sesja jest tym, czego chcę, ponieważ użytkownik powtarza te przepływy po ich pierwszym zakończeniu i czy pozostałyby jakieś atrybuty sesji, prawda? Gdzie atrybuty z zakresami konwersacji znikałyby, gdy główny przepływ zakończyłby się i nie byłby obecny, gdyby użytkownik wprowadził przepływ główny po raz drugi, prawda? Czy istnieje sposób dodania do conversationScope w przejściu na = "WORKFAIL"? Chciałbym zachować go w xml/jsps, a nie dodawać do kodu Java akcji. –
@Nick Foote - spójrz na moją edycję, aby odpowiedzieć na twoje pytanie –
Pozdrawiam, że działa jak uczta, tak oczywiste, kiedy widzisz, próbowałem różnego rodzaju rzeczy jak $ {converationScope.someVariable} w jsp !! –