java Spring MVC注释错误“没有处理程序的适配器您的处理程序是否实现了类似控制器的受支持接口?”
我有一个用2.5编写的Spring MVC应用程序
我想使用新的注释控制器。我觉得它很灵活,可以满足我的其他需求
我的问题是,我似乎无法将两者混合
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:component-scan
base-package="com.test.web" />
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<!-- Controller Mappings Here -->
<bean id="homeController" class="com.test.web.HomeController">
<property name="cacheSeconds" value="120" />
</bean>
//other plain old spring mvc controller
当我运行应用程序并点击主页时,我发现以下错误:
javax.servlet.ServletException: No adapter for handler [com.test.web.HomeController@cca07b]: Does your handler implement a supported interface like Controller?
我不确定,但我认为有些矛盾。这是一个相当大的SpringMVC应用程序,我不想更改那些已经使用旧的SpringBase控制器工作的模块
我的目标是在我的新增强上只使用注释控制器
# 1 楼答案
您不需要声明
DefaultAnnotationHandlerMapping
和AnnotationMethodHandlerAdapter
。默认情况下,上下文已注册这些适配器以及旧式控制器的适配器当您像这样显式地声明它们时,默认值将被删除,并且上下文将只支持您声明的值