开发者社区> 问答> 正文

DispatcherServlet如何与ContextLoaderListener搭配 配置报错 

springmvc的

我的工程一直在用springmvc,spring版本是3.0.7。我在web.xml里没有配置ContextLoaderListener,是直接通过DispatcherServlet来加载所有spring的xml文件。如此ioc和mvc url映射都是正常的。

现在我想引入ehcache的页面缓存。它必须在web.xml里配个SimplePageCachingFilter。由于其加载时机先于servlet,我不得不在web.xml配置ContextLoaderListener。现在问题就来了!我发现只有通过DispatcherServlet来加载所有配置,mvc的url映射才是有效的。我试过通过ContextLoaderListener加载所有xml文件,或者DispatcherServlet只加载spring-servlet.xml,剩下的全部交给ContextLoaderListener加载,这些情况下ioc加载都没问题,可mvc映射都是无效的。

有没什么法子可以搞定 ContextLoaderListener+DispatcherServlet?

展开
收起
kun坤 2020-06-04 13:16:09 698 0
1 条回答
写回答
取消 提交回答
  • spring-mvc 和 applicationContext 分别在web.xml配置。

    <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:config/spring/spring.xml</param-value> </context-param> <servlet> <servlet-name>mvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:config/spring/spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
    ######回复 @erdo : 我们在用的就是这个。很好啊######你说的这种分开配置的方式我也试过,但所有@controller的URL映射都失效了。######servlet.xml 的 annotation-driven 有一个include-filter applicationContext.xml 是 exclude...######标准方法是在web.xml中配置两个,然后在spring mvc配置文件中注解只扫controller注解,其余spring不扫controller注解,如上面所述######你的说法比较正确,一般都是两者都配置,我现在做的系统就是两个都进行了配置的######能发一个完整的web.xml配置吗?

    2020-06-05 13:18:24
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载