【问题标题】:How to get Spring Webflow started with link如何通过链接开始 Spring Webflow
【发布时间】:2018-11-26 11:56:46
【问题描述】:

我想使用 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;
    }
}

Current Directory Structure

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

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

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

【问题讨论】:

  • 问题只是您的流程在templates/flows.checkout 中,但您在templates/flows/checkout 中引用它?
  • @dbreaux 使用intellij,它只是以类似于包的方式显示空文件夹...实际目录是templates/flow/checkout...但是,我设法找到了解决方案问题...事实证明我需要在 webflowconfig 文件中添加 classpath: 前缀...来自我咨询过的其他来源,这似乎是使用 Spring Boot 的方法...
  • 很高兴听到您找到了解决方案。建议您将其添加为答案并接受。供将来搜索。

标签: spring thymeleaf spring-webflow


【解决方案1】:

事实证明,我需要在 webflowconfig 文件中添加 classpath: 前缀...来自我咨询过的其他来源,这似乎是使用 Spring Boot 执行此操作的方法,因为打包时文件结构不同作为一个罐子。

【讨论】:

    猜你喜欢
    • 2012-09-23
    • 2012-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-31
    • 2010-09-15
    • 2016-03-30
    • 2022-11-03
    相关资源
    最近更新 更多