如何获得Spring Webflow从链接开始



我想使用Spring Webflow为在线商店结账。我已经查看了几个教程来弄清楚如何配置所有内容,但我无法让它工作。我认为问题可能出在结帐的 url 上,但我找不到任何解释如何触发第一个操作状态的来源。
我当前的代码:

<strong>checkout-flow.xml</strong>
<var name="order" class="com.webstore.domain.Order"/>
<action-state id="addCartToOrder">
<evaluate expression="cartService.validate(requestParameters.cartId)" result="order.cart" />
<transition to="invalidCartWarning" on-exception="com.webstore.exception.InvalidCartException" />
<transition to="collectCustomerInfo" />
</action-state>

WebFlowConfig.java:

@Configuration
public class WebFlowConfig extends AbstractFlowConfiguration {
@Bean
public FlowDefinitionRegistry flowRegistry() {
return getFlowDefinitionRegistryBuilder()
.addFlowLocation("/templates/flows/checkout/checkout-flow.xml", "checkout")
.build();
}
@Bean
public FlowExecutor flowExecutor() {
return getFlowExecutorBuilder(flowRegistry()).build();
}
@Bean
public FlowHandlerMapping flowHandlerMapping() {
FlowHandlerMapping handlerMapping = new FlowHandlerMapping();
handlerMapping.setOrder(-1);
handlerMapping.setFlowRegistry(flowRegistry());
return handlerMapping;
}
@Bean
public FlowHandlerAdapter flowHandlerAdapter() {
FlowHandlerAdapter handlerAdapter = new FlowHandlerAdapter();
handlerAdapter.setFlowExecutor(flowExecutor());
handlerAdapter.setSaveOutputToFlashScopeOnRedirect(true);
return handlerAdapter;
}
}

当前目录结构

我认为问题在于 URL 的配置方式...我已经尝试了几种组合,所以我不确定如何将其组合在一起......目前是:

<a th:href="@{/flows/checkout}"> Check out  </a>

但这行不通。任何关于我哪里出错的建议将不胜感激!

事实证明,我需要在 webflowconfig 文件中classpath:前缀......从我咨询过的其他来源来看,这似乎是使用 Spring Boot 的方法,因为打包为 jar 时文件结构不同。

最新更新