TL; DR - Spring Web Flow中的模型绑定是否有办法将HTTP请求参数映射到模型属性?
问题:
My Spring Web Flow应用程序通过第三方产品访问。我们的客户连接到外部产品,做一些事情,然后第三方产品的请求被发送到我们的网络流程。然后我们发回回复,告诉外部平台下一步该做什么。
因此,我不可以控制正在发送的HTTP请求参数,但我仍然在尝试利用Spring Web Flow绑定。
模型对象
public class MyModel {
private String _value;
public void setValue(String value);
public String getValue();
}
Flow Snippet
<?xml version="1.0" encoding="utf-8"?>
<flow>
<on-entry>
<evaluate expression="new MyModel()" result="flowScope.myModel" />
</on-entry>
<view-state id="myForm" model="myModel">
<binder>
<binding property="value" converter="my_converter" required="true" />
</binder>
<transition on="submit" to="confirm" />
</view>
</flow>
但是,当传入实际的HTTP请求以进行提交时,请求参数如下所示:
http://web-foo/my-flow?execution=e1s1&_eventId_submit=Submit&Content=ClientValue
有没有办法,除了使用自定义操作等告诉绑定器我希望它获取HTTP请求参数内容的值并将其设置在值我的模型对象上的em>属性。未来的请求将重用相同的HTTP参数,因此我不能只更新我的模型,因为该值将被覆盖
答案 0 :(得分:1)
在您的流程中创建输入:
<input name="Content" type="string"/>
将自动填充请求参数。
然后只需将其设置在您的模型上:
<on-entry>
<evaluate expression="new MyModel()" result="flowScope.myModel" />
<set name="myModel.value" value="Content"/>
</on-entry>
...