springmvc的DispatcherServlet如何与ContextLoaderListener搭配配置?

erdo 发布于 2013/11/16 11:42
阅读 8K+
收藏 0
我的工程一直在用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?
加载中
0
LucEsape
LucEsape
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>
LucEsape
LucEsape
回复 @erdo : 我们在用的就是这个。很好啊
e
erdo
你说的这种分开配置的方式我也试过,但所有@controller的URL映射都失效了。
0
小野ye
小野ye
servlet.xml 的 annotation-driven 有一个include-filter applicationContext.xml 是 exclude...
0
52java
52java
标准方法是在web.xml中配置两个,然后在spring mvc配置文件中注解只扫controller注解,其余spring不扫controller注解,如上面所述
Chengrui-Cui
Chengrui-Cui
你的说法比较正确,一般都是两者都配置,我现在做的系统就是两个都进行了配置的
0
纠葛

能发一个完整的web.xml配置吗?

返回顶部
顶部