我想使用Spring Webflow为在线商店进行结账。我已经看了几个教程来弄清楚如何配置所有东西,但我无法让它工作。我认为问题可能出在结帐的网址上,但我无法找到解释如何解雇第一个动作状态的任何来源。
我目前的代码:
<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>
但这不起作用。任何有关我出错的建议都将不胜感激!
答案 0 :(得分:0)
事实证明,我需要在webflowconfig文件中添加classpath:
前缀...来自我咨询过的其他资源,这似乎是使用Spring Boot的方法,因为文件结构不同当包装成罐子时。