By default the spring mvc defines 3 different request handler adapters, they are
org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
So you need not have to define them in your context file, but if you define at least one handler adapter in your context files, spring will not create the default adapters.
In your configuraion you are using <mvc:annotation-driven />
, according to this spring documentation this will cause the context to define both DefaultAnnotationHandlerMapping
and AnnotationMethodHandlerAdapter
. Since we are creating the AnnotationMethodHandlerAdapter
in our context definition spring will not create the other two handlerAdapters. That is why you are getting the said exception.
The beanNameUrlMapping needs the handlerAdapter SimpleControllerHandlerAdapter
.
To resolve this exception you can simply create a new bean of type "SimpleControllerHandlerAdapter" in your context.
<bean
class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter">
</bean>
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…