2009-06-03 2 views
6

Для относительно простого приложения можно использовать Webflow, чтобы уменьшить необходимость создания контроллеров форм? Ну, конечно, это возможно, но я думаю, что я спрашиваю: могу ли и написать ли я все приложение, использующее Webflow, для всей логики контроллера/представления, если моя цель - уменьшить количество кода, который я пишу ?Может ли Spring Webflow устранять необходимость в классах контроллера?

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

ответ

6

Вариант использования Web Flow предназначен для решения проблемы, связанной с логикой контроллера, которая охватывает многостраничную навигацию (поток страниц или мастер). Если вам не нужно иметь форму, разделенную на несколько страниц (или требуется несколько небольших форм для участия в одной транзакции), вам, вероятно, не нужен поток страниц.

Большинство приложений действительно нуждаются в этом, однако. Все, что угодно, чем простой CRUD, приносит пользу.

Pageflows обеспечивают естественный кэш данных и могут решить проблемы, возникающие при использовании обратной кнопки навигации и нескольких кадров/вкладок.

Если вы подумываете о том, как хранить данные, которые должны жить дольше, чем один запрос (общий, но ошибочный вид должен храниться в HttpSession), то вы обязательно получите что-то из веб-потока. Если вы не делаете ничего подобного и обрабатываете все в области запроса, то вероятность того, что вам не нужен веб-поток.

Update: Web Flow может устранить необходимость в специализированных классах контроллера для выполнения следующих путей переходов страниц/обновления формы по заранее определенной последовательности действий. Если вам не нужно это делать, вы можете сэкономить себе много конфигурации/сложности, просто используя MVC.

+0

Хорошо, но все ли должно быть частью потока? Предположим, у меня есть экран, на котором отображаются только некоторые записи. Пользователь может щелкнуть по записи и перейти на экран, где он может его обновить .... возможно, каждая запись в представлении просто имеет ссылку на представление обновления и передает идентификатор записи. Я мог бы написать контроллер для настройки этого начального представления, или я мог бы иметь «поток» с одним состоянием. Я не понимаю что-то здесь ... – Boden

+0

В моем понимании, вы должны пойти или нет с помощью Web Flow. В описываемом вами сценарии вам не нужны какие-либо специализированные контроллеры. Но чтобы ответить на ваш вопрос, поскольку он был изначально сформулирован, да, это цель Web Flow - исключить необходимость того, чтобы контроллеры стали специализированными для обработки взаимодействий типа рабочего процесса. – cwash

3

SpringMVC и Spring WebFlow могут использоваться вместе там, где это необходимо - нет ничего странного в этом.

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

Примечание: вы также можете добиться этого в WebFlow, и что ни лучше, ни хуже.

Если у вас сложная логика мастера и требования к управлению состоянием, то WebFlow отлично подходит для многих других функций, таких как транзакции и поддержка сохранения (версия-2).