其他分享
首页 > 其他分享> > Spring Web Flow请求映射

Spring Web Flow请求映射

作者:互联网

我将Spring Web Flow 2添加到一个非常大的现有Web应用程序中,该应用程序当前不使用Spring MVC或Web Flow.我的任务是通过访问mySite.com/flows来触发Web Flow,我遇到了困难.我的方法是设置带有/ flows / *映射的DispatcherServlet,并将Web Flow映射到/flow.这是我的web.xml,其中配置了DispatcherServlet:

<servlet>
    <servlet-name>flow</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/flowContext.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>flow</servlet-name>
    <url-pattern>/flows/*</url-pattern>
</servlet-mapping>

我已经尝试了几种方法来使Web Flow映射到/ flow.我的第一次尝试是使用带有基本路径设置的flow-registry:

<webflow:flow-registry id="flowRegistry" flow-builder-services="flowBuilderServices" base-path="/WEB-INF/app/flows">
    <webflow:flow-location-pattern value="**/*-flow.xml" />
</webflow:flow-registry>

我的理解是,这将采用/ WEB-INF / app / flow中的文件夹结构来创建请求映射.我的第一个测试是将我的flow,booking-flow.xml添加到名为booking(/ WEB-INF / app / flows / booking)的子文件夹中.而且,太棒了! – 它按预期工作.我能够从mySite.com/flows/booking访问该流程.好的,但是我不希望/在URL中预订,所以我将booking-flow.xml移出预订文件夹,然后直接进入WEB-INF / app / streams并期望这对我有用,但它确实不 – 我认为流程根本没有映射.

有谁知道如何将流映射到DispatcherServlet映射的根目录,还是有更好的方法来解决这个问题?我不希望DispatcherServlet处理我的应用程序中/ flow之外的任何请求.它只是我,还是Spring Web Flow上的文档很少?

谢谢!

解决方法:

您可以使用SimpleUrlHandlerMapping这种方式将流程映射到mySite.com/flows

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings" value="flows=flowController" />
</bean>

<bean id="flowController" class="org.springframework.webflow.mvc.servlet.FlowController">
    <property name="flowExecutor" ref="flowExecutor" />
</bean>

<webflow:flow-executor id="flowExecutor" flow-registry="flowRegistry">
</webflow:flow-executor>

<webflow:flow-registry id="flowRegistry" flow-builder-services="flowBuilderServices" base-path="/WEB-INF/app/flows">    
    <webflow:flow-location path="booking-flow.xml" id="flows"/>
</webflow:flow-registry>

标签:mapping,spring-mvc,spring,spring-webflow-2
来源: https://codeday.me/bug/20190620/1249036.html