使用Spring Web Flow 1时,如何将对象添加到bean中的列表中?

时间:2009-06-16 12:12:44

标签: java spring spring-webflow

我有一个网络流程,我需要在其中一个屏幕上捕获数据。

此数据存储在一个对象中,该对象将保存在bean的列表中。

在提交页面时,我希望能够创建一个对象,并将其添加到bean中的列表中。

这可能吗?

由于

3 个答案:

答案 0 :(得分:1)

你需要做几件事:

  1. 将对象放入流范围(或在现有对象上添加额外字段,如表单),以提供指向要编辑的对象的固定绑定路径。如果不这样做,则无法利用Spring的数据绑定。

  2. 在FormAction上编写一个方法,将此对象放入列表中,并将此方法设置为在提交当前页面时按照转换运行。此方法可以根据需要清除(1)中使用的流镜级资源。

  3. 编辑 Webflow文档提供了有关如何在转换上执行操作的很好示例。对于Webflow版本2,请查看Executing view transitionsExecuting actions。对于版本1,请参阅Flow definition

答案 1 :(得分:1)

最后,我设法让它使用以下流程。

我创建了一个帮助bean来保存一个函数,用于添加到表单bean中保存的列表。

<view-state id="page2" view="page2">
    <transition on="save" to="addToList">
        <action bean="form" method="bindAndValidate"/>
    </transition>
    <transition on="back" to="page1">
        <action bean="formAction" method="bindAndValidate"/>
    </transition>
    <transition on="next" to="page3">
        <action bean="formAction" method="bindAndValidate"/>
    </transition>
    </view-state>

    <action-state id="addToList">
        <bean-action bean="helperbean" method="addToList">
            <method-arguments>
                <argument expression="conversationScope.form"/>
        </method-arguments>
        </bean-action>
        <transition on="success" to="page2"/>
    </action-state>

然后再次显示原始页面

答案 2 :(得分:0)

我会将Bean(和列表)存储在Session中。