Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java springmvc-Web流控制器_Java_Spring_Jakarta Ee_Spring Mvc_Spring Webflow - Fatal编程技术网

Java springmvc-Web流控制器

Java springmvc-Web流控制器,java,spring,jakarta-ee,spring-mvc,spring-webflow,Java,Spring,Jakarta Ee,Spring Mvc,Spring Webflow,我有一个使用spring框架和spring webflow开发的j2ee应用程序。目前我所有的url请求都通过Web流。我想要的是能够选择是将其定向到Web流还是普通的spring mvc控制器。我不知道如何将其定向到自定义控制器。我该怎么做 我尝试在我的web.xml中使用它,但我无法将它定向到mytest2-servlet.xml中指定的bean控制器 <servlet> <servlet-name>mytest</servlet-name>

我有一个使用spring框架和spring webflow开发的j2ee应用程序。目前我所有的url请求都通过Web流。我想要的是能够选择是将其定向到Web流还是普通的spring 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>

我的测试
org.springframework.web.servlet.DispatcherServlet
上下文配置位置
2.
mytest2
org.springframework.web.servlet.DispatcherServlet
上下文配置位置2
2.
我的测试
*.做
mytest2
*.htm
上下文配置位置
/WEB-INF/WEB-application-config.xml
上下文配置位置2
/WEB-INF/mytest2-servlet.xml

在您的最终状态下尝试此操作

<end-state id="exit" view="externalRedirect:controllerURL" />


其中,“controllerURL”是控制器侦听的URL/

混合Web流和普通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
,都可以由常规控制器处理。

编写dispatcher-sevlet.xml或配置文件,编写单独的配置文件(为方便起见)对于Spring流,只需导入dispatcher servlet.xml中的文件。

我建议您参考。我需要的是您提供的链接中的自定义流处理程序主题。是否有一种方法可以将请求定向到另一个控制器而不是Webflow。我在我的问题中添加了一些东西,我想,如果春天真的没有其他方法的话,你可以用普通的Servet过滤器来实现。实际上,目前还没有使用Spring,我上一次使用Spring已经2年多了。