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