Как работает Spring WebFlow с точки зрения выполнения кода? - PullRequest
0 голосов
/ 09 сентября 2018

Я новичок в Spring Webflow и прохожу коды и объяснения в интернете. У меня есть базовые сомнения относительно потока выполнения кодов в весенних приложениях webflow. Как я понял, запрос потока сопоставлен с файлом flow.xml (теперь я знаю о FlowHandlerAdapter, FlowHandlerMapping, FlowRegistry). Начальное состояние в потоке xml-файла, если оно является состоянием просмотра, оно отображает представление. Например -

<?xml version="1.0" encoding="UTF-8"?>
<flow xmlns="http://www.springframework.org/schema/webflow"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="
    http://www.springframework.org/schema/webflow
    http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd">

    <secured attributes="ROLE_USER" />

    <input name="hotelId" required="true" />

    <on-start>
        <evaluate expression="bookingService.createBooking(hotelId, currentUser.name)" result="flowScope.booking" />
    </on-start>

    <view-state id="enterBookingDetails" model="booking">
        <transition on="proceed" to="reviewBooking" />
        <transition on="cancel" to="bookingCancelled" bind="false" />
    </view-state>

    <view-state id="reviewBooking">
        <transition on="confirm" to="bookingConfirmed">
            <evaluate expression="bookingService.persistBooking(booking)" />
        </transition>
        <transition on="revise" to="enterBookingDetails" />
        <transition on="cancel" to="bookingCancelled" />
    </view-state>

    <end-state id="bookingConfirmed" />

    <end-state id="bookingCancelled" />

</flow>

Здесь, когда выполняется файл потока, первое состояние просмотра с идентификатором - «enterBookingDetails» отображает представление enterBookingDetails.xhtml.

Теперь элемент управления переходит на страницу просмотра enterBookingDetails.xhtml и ожидает события пользователя? И после того, как пользователь нажимает кнопку «продолжить», элемент управления возвращается к потоку XML-файла и выполняет элемент <transition>, чтобы перейти к просмотру. Просмотр состояния просмотра?

Правильно ли я понимаю, что выполнение потока приостанавливается до тех пор, пока не произойдет пользовательское событие, и при возникновении пользовательского события управление переходит с веб-страницы в файл XML потока и выполняет переход и переходит в соответствующее состояние.

1 Ответ

0 голосов
/ 22 октября 2018

Да, ваше понимание по существу верно. Spring Web Flow Framework визуализирует представление, и затем, как только будет получено следующее действие «продолжить», оно перейдет в состояние «просмотр книги», где снова будет по существу приостановлено до следующего действия пользователя. Выполнение основано на передаче состояния от одного к другому для поэтапного завершения всего потока.

ПРИМЕЧАНИЕ. Вы также можете повторно использовать потоки, определенные в других XML-файлах веб-потока, в своем собственном потоке. Это делает каркас очень мощным.

...