5

春のフレームワークと春の webflow を使用して開発された j2ee アプリケーションがあります。現在、すべての URL リクエストは Web フローを経由しています。私が欲しいのは、それを Web Flow に送信するか、通常の 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>
4

3 に答える 3

1

最終状態でこれを試してください

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

ここで、「controllerURL」はコントローラーがリッスンする URL です/

于 2012-06-22T19:58:46.010 に答える
1

Web フローとプレーンな Spring MVC コントローラーの両方を混在させる最も簡単な方法は、フロー パスの外側の URL パスでプレーンなコントローラーを登録することです。

たとえば、構成ファイルからの抜粋をweb.xml次に示します。これは、 の単一インスタンスによってロードされDispatchServletます。

<!-- 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) は通常のコントローラーで処理できます。

于 2012-06-26T14:56:03.713 に答える
0

dispatcher-sevlet.xml または構成ファイルを作成し、Spring Flows 用に別の構成ファイル (便宜上) を作成し、dispatcher-servlet.xml にファイルをインポートするだけです。

于 2013-01-03T12:06:53.153 に答える