2

我正在将 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' 这样的请求时,请注意它没有操作参数,而不是给我一个错误,我希望有一个默认方法。

4

2 回答 2

1

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

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

于 2017-09-30T05:47:19.197 回答
0

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

于 2013-02-13T06:18:37.437 回答