首页 > 解决方案 > 如何在 webflow 中使用输入/输出元素?

问题描述

我试图了解如何在 webflow 中使用输入和输出元素。文档表明流输入/输出映射类似于调用带有签名的方法,但我不明白是什么将输入值传递给流或流将输出返回到什么。我如何使用这些元素?

我一直在阅读此处找到的文档,但没有我能找到的实际元素示例。这是文档中的一个示例。

<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.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" />

在这段代码中,分配给“hotelId”的值从何而来?输入是否来自 URL?如果是这样,子流中<input/>的行为是否会发生变化?

标签: spring-mvcspring-webflow

解决方案


在此代码中,hotelId如果您调用,将自动从 URL 映射/myFlow?hotelId=3(假设您的流程称为“myFlow”)

但是您也可以在从另一个流调用流时直接设置输入,即使用:

<subflow-state id="mySubflow" subflow="myFlow">
    <input name="hotelId" value="3"/>
</subflow-state>

推荐阅读