代码之家  ›  专栏  ›  技术社区  ›  Craig Angus karan

使用SpringWebFlow1时,如何将对象添加到bean中的列表中?

  •  0
  • Craig Angus karan  · 技术社区  · 16 年前

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

    这些数据存储在一个对象中,该对象将保存在be an中的一个列表中。

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

    这有可能吗?

    谢谢

    3 回复  |  直到 16 年前
        1
  •  1
  •   Dan Vinton    16 年前

    你需要做一些事情:

    1. 将一个对象放入流作用域(或在窗体等现有对象上添加一个额外的字段),为要编辑的对象提供固定的绑定路径。如果不这样做,就不能利用Spring的数据绑定。

    2. 在窗体上编写一个方法,将此对象放入列表中,并将此方法设置为在提交当前页时所执行的转换上运行。此方法可以根据需要清理(1)中使用的FlowScope级别的资源。

    编辑 WebFlow文档提供了如何在转换时执行操作的良好示例。对于WebFlow版本2,请签出 Executing view transitions Executing actions . 对于版本1,请参见 Flow definition .

        2
  •  1
  •   Craig Angus karan    16 年前

    最后,我设法使它与以下流程一起工作。

    我创建了一个helper 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>
    

    然后它再次显示原始页面

        3
  •  0
  •   Gandalf    16 年前

    我将在会话中存储bean(和列表)。