2

Web アプリ プロジェクトに Spring MVC を使用していますが、注釈の使用を避けようとしています。

MultiActionController とデリゲートが機能する限り、私は遭遇しました。

問題は、 MultiActionController のデリゲートにデフォルト メソッドを設定するにはどうすればよいかということです。

MultiActionController とは、次のような意味です

public class TestController1 extends MultiActionController{

    public TestController1(){
        System.out.println("TestController1 initialising...");
    }
}

私のxml設定は...

<bean id="multiactionController1" class="test.TestController1">
    <property name="delegate" ref="testDelegater1"/>    
    <property name="methodNameResolver" ref="paramResolver"/>
</bean>

<!-- Delegaters -->
<bean id="testDelegater1" class="test.TestController1Delegator"/>

<!-- param method name resolver -->
<bean id="paramResolver"  class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
    <property name="paramName" value="action"/>
</bean>
<!-- Simple Url Handler Mapping -->
    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
       <property name="mappings">
          <map>
             <entry key="/multiaction1/**" value-ref="multiactionController1"/>
             <entry key="/item/**" value-ref="itemController"/>
          </map>
       </property>
    </bean>

したがって、 '*/item' のようなリクエストを送信すると、アクション パラメータがないことに注意してください。エラーが発生する代わりに、デフォルト メソッドが必要です。

4

2 に答える 2

0

このページの指示に従って、これを解決できました。
http://www.cwinters.com/blog/2004/02/18/spring_setting_a_default_action_for_multiactioncontroller.html
私の知る限り、MethodNameResolverメソッド名が指定されていない場合にデフォルトのメソッド名を返す独自のものを実装する必要があります。
これが役立つことを願っています:)

于 2013-02-13T06:18:37.437 に答える