7
我有一個動作狀態,評估一個表達式,然後根據結果轉換到各種其他狀態。其中一個結果狀態是將控制權交給另一個流的子流狀態,例如;Spring Webflow:如何在轉換期間將屬性從一個流傳遞到另一個流?
<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>
正如你看到的,我可以通過輸入到通過輸入標籤的子流,但我的問題是我怎麼能指定並傳遞我要當且僅當子流狀態被稱爲附加輸入從過渡WORKFAIL?假設子流狀態「fixFail」可以從其他動作狀態調用。
我試過類似下面的東西沒有效果;
<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>
哼哼的conversationScope聽起來像什麼,我想在這種情況下,我認爲。我同意這個會話是我想要的,因爲用戶在第一次完成後重複這些流程,並且任何會話屬性都不會保留?當主要流程完成時,對話範圍的屬性會消失,如果用戶第二次輸入主要流程則不會出現,對嗎? 有沒有辦法在=「WORKFAIL」的過渡中添加到conversationScope中?我想將它保存在xml/jsps中,而不是添加到操作的Java代碼中。 – 2011-01-06 11:39:45
@Nick Foote - 看看我的編輯回答你的問題 – 2011-01-06 14:34:55
乾杯,當你看到它時很明顯,我在jsp上嘗試各種各樣的東西,像$ {converationScope.someVariable}! – 2011-01-06 15:04:25