【发布时间】:2013-06-01 10:24:36
【问题描述】:
1、在spring 3.0文档中,关于mvc:annotation-driven是:
“这个标签注册了 Spring MVC 将请求分发到 @Controllers 所需的 DefaultAnnotationHandlerMapping 和 AnnotationMethodHandlerAdapter bean。”
但我没有将这个标签注入到任何 spring 配置文件中,我确信这一点。
那么为什么我的应用可以在没有它的情况下向@Controllers 发送请求呢?
2、mvc:default-servlet-handler 被注入到我的应用程序中处理静态资源后,所有控制器都不起作用,只是在网页上出现 404 未找到错误,但静态资源很好。
我搜索了一下,发现可能是 mvc:annotation-driven 丢失了。
不幸的是,在添加 mvc:annotation-driven 后,自定义拦截器停止工作。 这是拦截器定义:
<bean id="currentMemberInterceptor" class="com.skill.common.CurrentMemberInjectionInterceptor" />
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<ref bean="currentMemberInterceptor" />
</list>
</property>
</bean>
如果拦截器定义更改为 mvc 标签,则拦截器可以工作,例如:
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/" />
<bean class="com.skill.common.CurrentMemberInjectionInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
阅读弹簧参考后,我无法理解这些标签和关系。
请帮忙,谢谢!
【问题讨论】:
标签: java spring-mvc