Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
Spring 如何为MultiActionController的委托方法设置默认方法?_Spring_Spring Mvc - Fatal编程技术网

Spring 如何为MultiActionController的委托方法设置默认方法?

Spring 如何为MultiActionController的委托方法设置默认方法?,spring,spring-mvc,Spring,Spring Mvc,我将SpringMVC用于一个web应用程序项目,并试图避免使用注释 我遇到了让MultiActionController和代理工作的情况 问题是,如何在MultiActionController的委托中设置默认方法 我说的MultiActionController是指这样的东西 public class TestController1 extends MultiActionController{ public TestController1(){ System.out

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

我可以按照本页中的说明解决这个问题。

据我所知,您需要实现自己的
methodnamesolver
,如果没有指定方法名,它将返回默认方法名。

我希望这有帮助:)

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

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