Spring 3 MVC и модальные мастера

Я рассматриваю интеграцию мастера в существующем приложении Spring 3 MVC + JPA + JQuery + JSP. Я бы предпочел, чтобы мастер был основан на jquery modal overalays, однако я открыт для рассмотрения других фреймворков, если это необходимо.

Я просмотрел Spring Webflow - но не могу понять, как заставить его работать с модальными оверлеями. Я нашел один учебник http://realworldagile.wordpress.com/2009/10/06/modal-wizard-forms-using-spring-webflow-2-0-8-and-richfaces/, но привязан к RichFaces.

Я не могу понять

  • как запустить мастер в оверлее.
  • как перейти от одного экрана наложения к другому - как часть переходов состояния.
  • как выполнять проверки на стороне сервера внутри наложения

Ответ 1

Вы можете использовать подпотоки: http://static.springsource.org/spring-webflow/docs/2.3.x/reference/html/ch03s09.html

Таким образом, вы можете перейти к второстепенному потоку (части мастера), прежде чем вернуться к текущему. Вид такой же, как модальный оверлей, с функциональной точки зрения, но со всеми стандартными механизмами и функциями WebFlow (например, проверка на стороне сервера).

Ответ 2

Я думаю, если это возможно - не используйте проверку SS в шагах мастера. Возможно, если вы можете реализовать шаблон мастера только на стороне клиента, потому что вам не нужны частично исправленные данные на сервере (некоторые страницы сеанса выполнены, а некоторые нет). Конечно, вы можете прикрепить jBPM, активность, Spring WEB Flow, чтобы решить эту проблему, но я думаю, что для большинства мастеров нужно только что-то вроде this. Пользователь заполняет данные во всех шагах на одной странице, вы проверяете и собираете их на стороне JS, после чего нажимаете "Готово" - вы отправляете данные и проверяете снова в SS.

Ответ 3

При использовании веб-потока кажется, что нужно использовать веб-поток во встроенном режиме (см. встроенный режим). В частности, ваш обработчик ajax в jQuery будет заменять содержимое модального диалога на фрагменты, отправленные с сервера (см. ajax).

Лично я использовал этот jQuery UI wizard плагин; в этом подходе вы создаете модель и отправляется Spring MVC из контроллера с помощью json, который программно используется в обработчике jQuery ajax, который, в свою очередь, связан с шагами мастера. Я думаю, что это будет ваша более ручная альтернатива.