Spring webflow и mvc работают вместе — на самом деле webflow построен поверх mvc.
Механика установки — это другое. Я все еще изучаю это, но вот что, по моему мнению, происходит на основе отслеживания журналов:
При запуске ядро Spring обрабатывает все аннотации hte и файлы конфигурации Spring. Среди прочего, он назначает сопоставления URL-адресов для реестра веб-потока и классов, аннотированных с помощью @Controller.
Компонент org.springframework.webflow.mvc.servlet.FlowHandlerMapping обрабатывает сопоставления для URL-адресов веб-потока. Вы должны убедиться, что это интерпретируется до того, как сопоставление будет зарегистрировано другими средствами (xml или @Controller bean-компоненты).
<bean class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping">
<property name="flowRegistry" ref="flowRegistry" />
<property name="order" value="-1" />
</bean>
Во время выполнения URL-адрес передается из механизма сервлета в преобразователь сопоставления mvc. Эта часть движка mvc сканирует все зарегистрированные ресурсы и возвращает первый найденный совпадающий.
Для заданного bean-компонента flowregistry:
<webflow:flow-registry id="flowRegistry"
flow-builder-services="flowBuilderServices"
base-path="/WEB-INF/pages/">
<webflow:flow-location path="login.xml" />
</webflow:flow-registry>
Компонент контроллера, определенный:
@Controller
@RequestMapping("/login")
public class LoginController {
...
}
Сопоставления, найденные в веб-потоке, будут иметь приоритет над найденными в контроллере (при условии, что все остальное настроено правильно).
Я обнаружил, что соглашения по настройке проектов веб-потока не очень хорошо документированы. Чтобы получить работающий проект веб-потока, я извлек конфигурации примерно из 6 «готовых к запуску» обучающих демонстраций. Все обрело смысл, как только я наладил работу.
Единственным признаком проблем с конфигурацией является то, что сопоставления не найдены, поэтому вы будете сильно зависеть от ведения журнала отладки org.springframework.web и org.springframework.webflow, чтобы выяснить, почему сопоставления не найдены. Я закончил отладку кода Spring до того, как «получил» его, и я все еще борюсь с некоторыми концепциями.
Надеюсь, это поможет.
person
pojo-guy
schedule
05.01.2015