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

发布于 2024-07-24 21:49:55 字数 149 浏览 9 评论 0原文

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

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

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

这可能吗?

谢谢

I have a a web flow where I need to capture data on one of the screens.

This data is stored in an object which will be held in a list in the bean.

On submitting the page I want to be able to create an object, and add it to the list in the bean.

Is this possible?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

十年九夏 2024-07-31 21:49:55

您需要做几件事:

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

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

编辑 Webflow 文档提供了有关如何在转换上执行操作的良好示例。 对于 Webflow 版本 2,请查看执行视图转换< /a> 和 执行操作 。 对于版本 1,请参阅流定义

You need to do a couple of things:

  1. Place an object into the flow scope (or add an extra field on an existing object like your Form) to give a fixed binding path to to the object you want to edit. If you don't do this, you can't take advantage of Spring's databinding.

  2. Write a method on your FormAction to place this object into your list, and set this method to run on the transition followed when you submit the current page. This method can clean up the flowscope-level resources used in (1) as required.

Edit The Webflow documentation has good examples of how to execute actions on transitions. For Webflow version 2 check out Executing view transitions and Executing actions. For version 1, see Flow definition.

◇流星雨 2024-07-31 21:49:55

最后我设法让它按照以下流程工作。

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

然后再次显示原始页面

In the end I managed to get it working with the following flows.

I created a helper bean to hold a function for adding to the list held in the form 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>

It then displays the original page again

帥小哥 2024-07-31 21:49:55

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

I would store the Bean (and the list) in the Session.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文