spring 3.1 では、default-url-mapping に汎用ベース コントローラーを使用する機能がありません。次の例を見てください。
<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>
ここでは、GenericEntityController といちごコントローラーに関連するコード スニペットを示します。
@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 を使用すると、コンテキストパスの Apple と Peach 用に (GenericEntityController の) 2 つのコントローラー インスタンスと、StrawberryController の 1 つの注釈付きコントローラー インスタンスがありました。/list.htm-method へのマッピングは、特にメソッドレベルで @RequestMapping によって行われました。私の質問: spring-mvc 3.1 では、注釈付きの @RequestMapping では SimpleUrlHandlerMapping が機能しなくなりました。次の例外が発生します。
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 でこの構成を置き換えるにはどうすればよいですか?