Я новичок в Struts2 и придумываю изящный способ реализации 3-страничного мастера с 2 формами и 4 bean-компонентами.
Прежде чем начать с вопросов, позвольте мне изложить свой вариант использования в общем виде безлюбые детали вовлеченных лиц, чтобы было проще.Вот мой пример использования:
- JSP1 имеет форму Form1 с полями ввода.
- Форма Form1 отправляется в Action1.
- Значения полей Form1 заполняются в Bean1 в Action1 через запроспривязка параметров.
- Action1 проверяет поля в Bean1 и, если проверка не проходит, отображается JSP1 с захваченными значениями Bean1 в полях Form1 и сообщениях об ошибках.
- Если проверка прошла успешно, Bean1 используется для получения Bean2, и результат -направлено на JSP2.
- JSP2 отображает данные в Bean2, а также в других полях ввода в Form2.
- Form2 отправляется в Action2
- Значения полей Form2 заполняются в Bean3 в Action2 черезпривязка параметров запроса.
- Action2 проверяет поля в Bean3 и, если проверка не удалась, отображает JSP2 с захваченными значениями Bean3 в полях Form2 и сообщениях об ошибках, а также данные Beans2!
- Если проверка прошла успешно, Bean3 используется длязаполнить Bean4, и результат будет направлен в JSP3.
- JSP3 отображает данные в Bean4
До этого поста я читал об этой теме в книгах: Struts2 в действии и практические проекты Struts2 Web2.0.Я исследовал варианты перехватчика области действия, управляемых моделью действий и отдельного действия с вызовом метода с использованием подстановочных знаков.Я не собираюсь добавлять дополнительные зависимости в виде Spring WebFlow и т. Д.
Я пытаюсь реализовать мастер, используя действия ScopedModelDriven с областью действия сеанса.Моя цель разработки - иметь четко определенные bean-компоненты для каждого действия, а не один bean-компонент для всех действий.
Прежде чем задавать вопросы о мастере, у меня есть базовый вопрос, касающийся области действия bean-компонента в действии.У Action1 должен быть Bean1 в стеке значений по 2 причинам: 1. связывание входных значений из Form1 при отправке;2. отображает значения Form1, если проверка не удалась.Action1 также должен иметь Bean2 в стеке значений для отображения результатов в JSP2.
Должно ли действие всегда иметь поля (так, чтобы они находились в ValueStack) как для входной страницы (Bean1), так и для страницы результатов (Bean2)?Если реализуется ScopedModelDriven, какой bean-компонент будет моей моделью?
Аналогично, для Action2 необходимо, чтобы Bean2, Bean3 и Bean4 находились в ValueStack.
Одно из методов грубой силы - объединить все поля в Bean1., Bean2, Bean3 и Bean4 и есть только один Bean для всего мастера!Я не хочу этого делать, потому что все эти bean-компоненты имеют определенную функциональность.
Я полагаю, что не понимаю концепцию правильно.Должен быть элегантный способ реализации этого мастера с этими атомарными компонентами с использованием области действия сеанса.
Любая помощь очень ценится.