【问题标题】:Customize Flow ID parsing Spring Webflow自定义 Flow ID 解析 Spring Webflow
【发布时间】:2014-06-25 22:26:38
【问题描述】:

最近我研究了 Spring Web Flow,我很好奇 SWF 如何从流定义文件中创建流 ID。

以下是有关根据文件位置注册流 id 的 spring 文档的一部分:

使用 location 元素指定流定义的路径 登记。默认情况下,将为流分配注册表标识符 等于它们的文件名减去文件扩展名,除非注册表 浴室路径已定义。

 <webflow:flow-location path="/WEB-INF/flows/booking/booking.xml" />

使用 base-path 属性定义所有流的基本位置 应用程序。然后所有流动位置都相对于基础 小路。基本路径可以是资源路径,例如“/WEB-INF”或 类路径上的位置,例如 'classpath:org/springframework/webflow/samples'。

<webflow:flow-registry id="flowRegistry" base-path="/WEB-INF">
<webflow:flow-location path="/hotels/booking/booking.xml" />
</webflow:flow-registry>

定义基本路径后,算法 分配流标识符略有变化。现在将分配流 注册表标识符等于它们的基础之间的路径段 路径和文件名。例如,如果流定义位于 '/WEB-INF/hotels/booking/booking-flow.xml' 基本路径是 '/WEB-INF' 这个流的剩余路径是 'hotels/booking' 成为流 id。

我阅读了 FlowDefinitionRegistry 源代码,但我发现 FlowDefinitionRegistry 仅将传入的请求 URL 解析为流 ID,以便与流定义文件中的流 ID 进行映射,但我没有找到 FlowDefinitionRegistry 将流位置解析为流 ID 的方式使用来自传入请求 URL 的流 ID 进行映射。

所以我的问题是,如何实现我自己的算法来指定流 id 也基于流位置?

【问题讨论】:

    标签: spring registration spring-webflow-2


    【解决方案1】:

    尝试使用这个流位置:

    <webflow:flow-location-pattern value="/hotels/**/*.xml"/>
    

    您的流程 ID 应该类似于:booking/booking

    【讨论】:

      猜你喜欢
      • 2014-07-13
      • 2018-03-10
      • 1970-01-01
      • 1970-01-01
      • 2014-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-20
      相关资源
      最近更新 更多