spring стандарт управления веб-потоком MVC @Conroller страницы

Можно ли применить весенний веб-поток к существующим страницам MVC (поддерживаемым @Controller, а не чистым jsp)?

например, у меня есть @RequestMapping(/start) @RequestMapping(/buy) @RequestMapping(/confirm) @RequestMapping(/pay), и я хотел бы поместить их в поток /buy->/cofirm->/pay без возможности настраивать навигация - могу ли я сделать это с помощью веб-потока?

AFAIK это невозможно, но я хочу убедиться.


person bastiat    schedule 18.12.2014    source источник


Ответы (1)


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