我遇到的问题已解决,方法如下:
原链接地址 https://blog.youkuaiyun.com/panguang9713/article/details/76184927
遇到这个问题总结一下:
1. springmvc的配置文件没有被加载,所以这里特别说明一下,如果您使用的是maven项目,并且在web.xml文件中配置的springmvc配置文件在classpath下,务必将配置文件放在resource目录而不是java目录下,您不妨打开target目录或者tomcat部署的目录看classes目录下是否有该配置文件。
2. 开启spring的注解功能,直接在springmvc的配置文件的beans节点中加入(mvc命名空间后面源码有有)用来开启注解
3. 确认扫描的包名没有错
4. 如果你发现访问一个url后控制器执行了但是还是404并且还是如题所示的错误,那么你就要注意了,原因是控制器返回的视图又被dispatcherservlet当做控制器访问了,当他发现没有找到对应的控制器就会返回404,而你要返回的视图是个静态资源,此时在springmvc的配置文件中添加
<mvc:default-servlet-handler/>
或者resouce节点即可解决问题
这里贴上springmvc配置文件的源码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--开启注解-->
<mvc:annotation-driven/>
<!--访问静态资源(假如没找到相应的控制器就去找静态资源,如果都没有则返回404)-->
<mvc:default-servlet-handler/>
<!--配置要自动扫描的包-->
<context:component-scan base-package="com.jhinwins.*"></context:component-scan>
<!-- 视图解析(不必须) -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/page/"></property>
<property name="suffix" value=".html"></property>
</bean>
</beans>
下文链接地址 https://blog.youkuaiyun.com/u010738061/article/details/48136747
1、控制层没有被spring扫描到,控制层没有实例化,检查自己的控制层是否被spring扫描到,检查以下配置:<context:component-scan base-package=""/>
2、web.xml配置文件的<url-pattern>标签配置成<url-pattern>/*</url-pattern>,正确的配置应该是<url-pattern>/</url-pattern>。学了structs之后再学spring mvc框架的 就会很容易犯这个错误。
3、使用的是注解实例化控制层,且web.xml的路径配置为<url-pattern>/</url-pattern>,却没有在spring的配置文件使用<mvc:annotation-driven />标签,导致URL解析出错,检查是否加上<mvc:annotation-driven />。