При использовании Spring Web Flow 1 как добавить объект в список в bean-компоненте? - PullRequest
0 голосов
/ 16 июня 2009

У меня есть веб-поток, в котором мне нужно захватить данные на одном из экранов.

Эти данные хранятся в объекте, который будет храниться в списке в компоненте.

При отправке страницы я хочу иметь возможность создать объект и добавить его в список в компоненте.

Возможно ли это?

Спасибо

Ответы [ 3 ]

1 голос
/ 17 июня 2009

Вам нужно сделать пару вещей:

  1. Поместите объект в область действия потока (или добавьте дополнительное поле в существующий объект, например вашу форму), чтобы задать фиксированный путь привязки к объекту, который вы хотите редактировать. Если вы этого не сделаете, вы не сможете воспользоваться привязкой данных Spring.

  2. Напишите метод на вашем FormAction, чтобы поместить этот объект в ваш список, и установите этот метод для запуска при переходе, выполняемом при отправке текущей страницы. Этот метод может очищать ресурсы уровня потока, используемые в (1), как требуется.

Редактировать В документации Webflow есть хорошие примеры того, как выполнять действия при переходах. Для версии 2 Webflow проверьте Выполнение переходов вида и Выполнение действий . Для версии 1 см. Определение потока .

1 голос
/ 18 июня 2009

В итоге мне удалось заставить его работать со следующими потоками.

Я создал вспомогательный компонент для функции добавления в список, содержащийся в компоненте.

<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>

Затем снова отображается исходная страница

0 голосов
/ 17 июня 2009

Я бы сохранил Бин (и список) в Сессии.

...