2008-10-22 86 views
3

在下面的Web Flow中,我將表單數據綁定到視圖狀態下的提交事件的流變量(lifeCycleForm)。我已經驗證過,名稱,標籤和說明屬性均按預期填充。如何在Spring Web Flow 2中的視圖狀態和操作狀態之間傳遞模型數據

但是,當評估操作狀態中的表達式時,所有三個屬性均爲空。我的表單bean是可序列化的,我只是使用簡單的字符串屬性。

我做錯了什麼?

我是Spring WebFlow的新手,所以我可能錯失了一些明顯的東西。

<var name="lifeCycleForm" class="com.btmatthews.freelancer.lifecycle.portlet.LifeCycleForm" /> 

<view-state id="createLifeCycle" model="lifeCycleForm"> 
    <binder> 
     <binding property="name" required="true" /> 
     <binding property="label" required="true" /> 
     <binding property="description" required="false" /> 
    </binder> 
    <transition on="submit" to="createLifeCycleAction" /> 
    <transition on="cancel" to="lifeCycleCreationCancelled" bind="false" /> 
</view-state> 

<action-state id="createLifeCycleAction">   
    <evaluate expression="lifeCycleService.createLifeCycle(lifeCycleForm.name, lifeCycleForm.label, lifeCycleForm.description, null, null)" /> 
    <transition on="success" to="lifeCycleCreated" /> 
    <transition on="failure" to="createLifeCycle" /> 
</action-state> 

<end-state id="lifeCycleCreated" /> 

<end-state id="lifeCycleCreationCancelled" /> 

更新:我忽略了我原來的帖子提到,有人認爲是失敗的我的單元測試。從那以後,我瞭解到AbstractFlowExecutionTests沒有實現請求參數的綁定。這對我來說似乎有點疏忽了。我已經試過最新的每晚Spring WebFlow 2.0.4,並且行爲依然如此。

更新:我的問題是,Spring WebFlow嘲笑不模擬表單提交。

由於提前, 布賴恩

+0

我唯一的建議是將LifeCycleForm作爲一個完整的對象(不是一片一片地)傳遞給lifeCycleService,並通過調試來查看該方法是什麼樣的......我沒有發現任何錯誤, ,但我只使用Webflow 1.0 :( – MetroidFan2002 2008-10-23 01:32:28

回答

1

要多少懊惱的是,我最近也發現了一個Webflow測試模擬並不使用Spring的結合。您是否曾嘗試在像Eclipse這樣的IDE內使用像Tomcat這樣的容器中的調試來運行流程?如果你沒有,這將是非常有用的。如果您需要幫助,我可以提供進一步的提示,但要開始我會說如果您還沒有下載Eclipse Web Standard Tools和Web Tools Project插件。如果你真的想能夠單元測試綁定,你仍然可以使用Spring Webflow 1 FormActions綁定到模型對象,即使它會使你的流程略微更加冗長。