您的位置:首页 > 其它

0055 <mvc:default-servlet-handler />不能同时访问静态资源和动态资源的问题

2017-03-29 21:02 519 查看
刚才在折腾的时候,发现applicationContext.xml中配置了
<mvc:default-servlet-handler />
后,能访问静态资源,却不能访问动态资源了;注释掉之后,不能访问静态却能访问动态资源。

找了些资料都说,如果把web.xml中将DispatcherServlet配置为拦截所有请求,包括静态和动态的,像下面这样:

<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>            <!-- 注意这,拦截所有请求 -->
</servlet-mapping>

那么,在applicationContext中就得加上
<mvc:default-servlet-handler />
或者
<mvc:resources 加些静态资源映射配置/>
,才能访问到静态资源。否则的话,web.xml中就得用类似于
*.do
或者
*.html
的方式配置
<url-pattern>


我这样配置了,却导致静态和动态资源不能同时访问,最后还是搜索英文资源,才在stackoverflow上解决了问题:http://stackoverflow.com/questions/8023203/how-to-use-default-servlet-handler

原来applicationContext.xml中要加上
<mvc:annotation-driven />
配置。

原来applicationContext.xml里面用的:

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />

配置的处理器映射器和处理器适配器,就没用简化的
<mvc:annotation-driven />


最后:找资料,还得上Google找英文的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐