7. 行动
大多数流程需要表达的不仅仅是视图导航逻辑。 通常,他们还需要调用应用程序的业务服务或其他作。
在流程中,你可以执行多个作:
-
流量启动
-
进入州内
-
视图渲染图
-
关于过渡执行
-
退出国家
-
在流端
动作通过简洁表达式语言定义。 默认情况下,Spring Web Flow 使用统一的 EL。 接下来的几个章节涵盖了定义动作的基本语言要素。
7.1. 该评价元素
最常用的动作元素是评价元素。
这评价元素在流程中的某个点评估表达式。
通过这个单一元素,你可以调用Spring Beans或其他流量变量的方法。
以下列表展示了一个示例:
<evaluate expression="entityManager.persist(booking)" />
7.2. 检查点:流程动作
你应该查看带有以下作的示例预订流程:
<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
https://www.springframework.org/schema/webflow/spring-webflow.xsd">
<input name="hotelId" />
<on-start>
<evaluate expression="bookingService.createBooking(hotelId, currentUser.name)"
result="flowScope.booking" />
</on-start>
<view-state id="enterBookingDetails">
<transition on="submit" to="reviewBooking" />
</view-state>
<view-state id="reviewBooking">
<transition on="confirm" to="bookingConfirmed" />
<transition on="revise" to="enterBookingDetails" />
<transition on="cancel" to="bookingCancelled" />
</view-state>
<end-state id="bookingConfirmed" />
<end-state id="bookingCancelled" />
</flow>
该流现在产生预订当它开始时,对象在流域中。
预订酒店的ID是通过流输入属性获得的。