您的位置:首页 > 其它

添加<mvc:default-servlet-handler/>后,静态资源可以访问,Controller不能访问。

2017-11-14 17:10 423 查看
搭建Spring-MVC项目时,可能会遇到这种情况。

解决办法:

在springmvc-servlet.xml文件中添加:

<context:annotation-config />
    <mvc:annotation-driven>
        <mvc:message-converters register-defaults="true">
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes" value = "text/plain;charset=UTF-8" />    </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

总结:要使用spring mvc中的@Controller注解,就必须要配置<mvc:annotation-driven />,否则org.springframework.web.servlet.DispatcherServlet无法找到控制器并把请求分发到控制器。

-------------------------------------------------

最后的配置如果没有<mvc:annotation-driven/>,那么所有的Controller可能就没有解析,所有当有请求时候都没有匹配的处理请求类,就都去<mvc:default-servlet-handler/>即default
servlet处理了。添加上<mvc:annotation-driven/>后,相应的do请求被Controller处理,而静态资源因为没有相应的Controller就会被default servlet处理。总之没有相应的Controller就会被default servlet处理就ok了。

参考:http://www.iteye.com/problems/66133
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐