При использовании Spring Web Flow 1, как мне добавить объект в список в компоненте?
-
05-07-2019 - |
Вопрос
У меня есть веб-поток, где мне нужно записывать данные на одном из экранов.
Эти данные хранятся в объекте, который будет храниться в списке в компоненте.
При отправке страницы я хочу иметь возможность создать объект и добавить его в список в компоненте.
Возможно ли это?
Спасибо
Решение 2
В конце концов мне удалось заставить его работать со следующими потоками.
Я создал вспомогательный компонент для хранения функции добавления в список, хранящийся в компоненте формы.
<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>
Затем он снова отображает исходную страницу
Другие советы
Тебе нужно сделать пару вещей:
Поместите объект в область потока (или добавьте дополнительное поле в существующий объект, например, в вашу форму), чтобы задать фиксированный путь привязки к объекту, который вы хотите отредактировать.Если вы не сделаете этого, вы не сможете воспользоваться преимуществами привязки данных Spring.
Напишите метод в вашем FormAction, чтобы поместить этот объект в ваш список, и установите этот метод для запуска при переходе, который следует при отправке текущей страницы.Этот метод может при необходимости очистить ресурсы уровня flowscope, используемые в (1).
Редактировать В документации Webflow есть хорошие примеры того, как выполнять действия над переходами.Для получения Webflow версии 2 ознакомьтесь Выполнение переходов между видами и Выполнение действий.Для версии 1 см. Определение потока.
Я бы сохранил компонент (и список) в сеансе.