Я новичок в 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 потока и выполняет переход и переходит в соответствующее состояние.