Web流量控制器
我有一个使用spring框架和spring webflow开发的j2ee应用程序。 目前,我的所有网址请求均通过Web Flow。 我想要的是能够选择是将其引导至Web Flow还是普通的弹簧mvc控制器。 我不知道如何将它引导到自定义控制器。 我该怎么做呢?
我试着在我的web.xml中有这个,但我不能将它指向mytest2-servlet.xml中指定的bean控制器
<servlet>
<servlet-name>mytest</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>mytest2</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation2</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mytest</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>mytest2</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/web-application-config.xml
</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation2</param-name>
<param-value>
/WEB-INF/mytest2-servlet.xml
</param-value>
</context-param>
试试你的最终状态
<end-state id="exit" view="externalRedirect:controllerURL" />
其中'controllerURL'是你的控制器监听的URL /
将Web Flow和普通的Spring MVC控制器混合使用的最简单的方法是只需在任何流路径之外的URL路径上注册纯控制器。
例如,下面是我们配置文件的一些摘录,它们是从DispatchServlet
的单个实例从web.xml
加载的:
<!-- Simple URL-view mapping without controller (or flow) -->
<mvc:view-controller path="/selectLanguage" view-name="selectLanguage"/>
<!-- Maps request paths to flows in the flowRegistry;
e.g. a path of /hotels/booking looks for a flow with id "hotels/booking". -->
<bean class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping" p:order="-1">
<property name="flowRegistry" ref="flowRegistry" />
<property name="interceptors">
<list>
<!-- for each flow, if a param lang=xx is added, switch locales -->
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"
p:paramName="lang"/>
</list>
</property>
</bean>
<!-- The registry of executable flow definitions -->
<webflow:flow-registry id="flowRegistry" flow-builder-services="flowBuilderServices" base-path="/WEB-INF">
<!-- Flows created from all -flow.xml files, with the flow ID being the path name -->
<webflow:flow-location-pattern value="/**/*-flow.xml" />
</webflow:flow-registry>
因此,WebFlow将注册与WEB-INF / ** / something-flow.xml文件相对应的所有URL路径,并且所有其他URL路径(如/selectLanguage above
)都可以由常规Controller处理。
编写一个dispatcher-sevlet.xml或配置文件,为Spring Flows编写一个单独的配置文件(为了方便起见),只需在dispatcher-servlet.xml中导入这些文件即可。
链接地址: http://www.djcxy.com/p/39063.html上一篇: Web Flow Controller