2011-11-29 64 views
0

我使用Spring webflow 2和webflow.mvc.servlet.FlowController。如何將數據從外部窗體綁定到spring webflow?

我希望將表單數據提交(POST)綁定到流程 ,直接綁定到此流視圖的模型。

導航流程並在內部提交表單數據 數據正確綁定到模型,但是當從外部網站數據提交數據時 未自動綁定。

爲了檢查這個,我在視圖中使用了一個spring:form標籤來通過它們的名稱/路徑綁定submittet值。

Example: 
    - the views model is named "model" 
    - the class used for the model object is has an attribute called "value1" 
    -> the bind path for the form:input element is "model.value1" 
    -> the submitted form input field is named "model.value1" as well 

更新

我能夠手動訪問請求參數現在使用:

<action-state> 
    <evaluate expression="myBinder.execute(flowRequestContext)"/> 
</action-state> 

其中myBinder是實現org.springframework.webflow.execution.Action

定製Java類和flowRequestContext是EL框架提供的變量。

通過requestContext.getExternalContext().getRequestParameterMap(); 請求的參數被公開。

我們結合這些參數,以我的模型豆,是有這麼自動完成,就像一個「bindAndValidate」方法至極這裏有提到 的便捷方式 。 我不知道這種方法可用。

我希望有一些類來超類我的模型bean,但我無法在任何地方找到它。

更新

無需實現Action接口現在我已經子類FormAction至極 有bindAndValidate()方法。但是,此方法需要將請求作爲參數,並且我還不知道如何在EL中最好地檢索對請求的引用。

此外,我還沒有檢查這是否將實際綁定請求參數到我的模型,並解決我的問題。

更新

我發現示出呼叫到不給參數所作的綁定方法的例子 - 因此我假定那些(RequestContext的)以某種方式由框架找到。

使用這種方法,模型名稱和類被設置爲FormAction bean的屬性。

流量似乎正常運行,但請求參數仍然保持不...

也許我不得不回去手動方法從讀取請求的每個參數和設置它的模型對象...

歡迎任何想法...

回答

1

您可以使用EL在XML流定義中訪問請求參數。例如,如果要訪問名爲「param1」的請求中的參數,請使用requestParameters.param1

希望這會有所幫助。

相關問題