如何设置MultiActionController的Delegate方法的默认方法?

时间:2013-02-13 05:43:23

标签: spring spring-mvc

我正在使用Spring MVC进行Web应用程序项目,我试图避免使用注释。

我遇到了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'之类的请求时,请注意它没有动作参数,而不是给我一个错误,我希望有一个默认方法。

2 个答案:

答案 0 :(得分:1)

使用MethodNameResolver的以下实现,它具有defaultMethodName属性。

org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver

答案 1 :(得分:0)

我可以按照本页中的说明解决此问题 http://www.cwinters.com/blog/2004/02/18/spring_setting_a_default_action_for_multiactioncontroller.html
据我所知,如果没有指定方法名,你需要实现自己的MethodNameResolver返回默认方法名称。
我希望这有助于:)