Мастер Struts2 с управляемой моделью - PullRequest
0 голосов
/ 20 марта 2011

Я новичок в Struts2 и придумываю изящный способ реализации 3-страничного мастера с 2 формами и 4 bean-компонентами.

Прежде чем начать с вопросов, позвольте мне изложить свой вариант использования в общем виде безлюбые детали вовлеченных лиц, чтобы было проще.Вот мой пример использования:

  1. JSP1 имеет форму Form1 с полями ввода.
  2. Форма Form1 отправляется в Action1.
  3. Значения полей Form1 заполняются в Bean1 в Action1 через запроспривязка параметров.
  4. Action1 проверяет поля в Bean1 и, если проверка не проходит, отображается JSP1 с захваченными значениями Bean1 в полях Form1 и сообщениях об ошибках.
  5. Если проверка прошла успешно, Bean1 используется для получения Bean2, и результат -направлено на JSP2.
  6. JSP2 отображает данные в Bean2, а также в других полях ввода в Form2.
  7. Form2 отправляется в Action2
  8. Значения полей Form2 заполняются в Bean3 в Action2 черезпривязка параметров запроса.
  9. Action2 проверяет поля в Bean3 и, если проверка не удалась, отображает JSP2 с захваченными значениями Bean3 в полях Form2 и сообщениях об ошибках, а также данные Beans2!
  10. Если проверка прошла успешно, Bean3 используется длязаполнить Bean4, и результат будет направлен в JSP3.
  11. 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-компоненты имеют определенную функциональность.

Я полагаю, что не понимаю концепцию правильно.Должен быть элегантный способ реализации этого мастера с этими атомарными компонентами с использованием области действия сеанса.

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 14 февраля 2012

Возможно, слишком поздно, но вы могли бы достичь своих целей довольно просто с помощью плагина Struts2 Conversation

...