有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Spring MVC 3.1:使用SimpleUrlHandlerMapping和通用基本控制器时的问题

在Spring3.1中,我错过了使用通用基本控制器进行默认url映射的功能。举个例子:

<bean id="appleController" class="de.mw.mwdata.core.web.control.GenericEntityController" />
<bean id="peachController" class="de.mw.mwdata.core.web.control.GenericEntityController" />

<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" >
    <property name="alwaysUseFullPath" value="true"/>
    <property name="mappings">
      <props>
        <prop key="/admin/apple/list.htm">appleController</prop>
        <prop key="/admin/peach/list.htm">peachController</prop>
        <prop key="/admin/strawberry/list.htm">strawberryController</prop>
      </props>
    </property>
</bean> 

<mvc:annotation-driven />

<context:component-scan base-package="de.mw.mwdata.app.admin.web.control" >
</context:component-scan>

下面是GenericeEntityController和strawberryController的相关代码片段:

    @RequestMapping("/admin/**")
public class GenericEntityController<E extends AbstractEntity> {

    ...

    @RequestMapping(value = "**/list.htm", method = RequestMethod.GET)
    public ModelAndView list( final HttpServletRequest request, final HttpServletResponse response ) {  
        ...
    }

}

package de.mw.mwdata.app.admin.web.control;
@Controller
@RequestMapping("/admin/strawberry/")
public class StrawberryController extends GenericEntityController<Strawberry> {
    ...
    }
}

因此,在spring 3.1之前,使用SimpleUrlHandlerMapping,我有两个用于contextpath apple和peach的控制器实例(GenericeEntityController),还有一个是带注释的 StrawberryController的控制器实例。映射到/列表。htm方法由@RequestMapping完成,尤其是在方法级别。 我的问题是:在spring mvc 3.1中,SimpleUrlHandlerMapping不再适用于带注释的@RequestMapping。我有以下例外:

Cannot map 'peachController' bean method 
public org.springframework.web.servlet.ModelAndView de.mw.mwdata.core.web.control.GenericEntityController.list(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
to {[/admin/**/list.htm],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}: There is already 'appleController' bean method
public org.springframework.web.servlet.ModelAndView de.mw.mwdata.core.web.control.GenericEntityController.list(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) mapped.

如何在spring 3.1中替换此配置


共 (0) 个答案