Предположим бизнесс-процесс вашего приложения требует от пользователя последовательности действий, которые он должен совершить. К примеру, в интернет-магазинах мы не можем посмотреть страницу благодарности за покупку не сделав этой самой покупки. Или мы не можем посмотреть какой-либо отчет, не указав критерии данных, которые должны войти в отчет. Для простых действий всё довольно тривиально, но если шагов перед завершением процесса должно быть множество, то мы рискуем превратить наш код в вермишель из хитросплетений вызовов и проверок. Для того чтобы этого избежать существует замечательный фреймворк - Spring Web Flow. И в этой заметке я приведу пример его использования в Grails 2.0.1.