Har*_*ish 38 spring spring-mvc
我正在使用spring mvc框架开发一个Web应用程序.我想要注释和基于beanName的url映射.
我在上下文文件中有以下配置
<mvc:annotation-driven />
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
Run Code Online (Sandbox Code Playgroud)
我的基于注释的控制器工作正常,但基于beanNamed的url映射抛出异常"没有适配器处理程序".
我在这做错了什么?
谢谢
Aru*_*hny 79
默认情况下,spring mvc定义了3个不同的请求处理程序适配器
org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
Run Code Online (Sandbox Code Playgroud)
因此,您无需在上下文文件中定义它们,但如果在上下文文件中定义至少一个处理程序适配器,则spring将不会创建默认适配器.
在您正在使用的配置中<mvc:annotation-driven />
,根据今年春季文档,这将导致上下文定义DefaultAnnotationHandlerMapping
和AnnotationMethodHandlerAdapter
.由于我们AnnotationMethodHandlerAdapter
在上下文中创建了spring,因此spring不会创建另外两个handlerAdapters.这就是你得到上述例外的原因.
beanNameUrlMapping需要handlerAdapter SimpleControllerHandlerAdapter
.
要解决此异常,您只需在上下文中创建一个类型为"SimpleControllerHandlerAdapter"的新bean.
<bean
class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter">
</bean>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
29289 次 |
最近记录: |