哎,今天下午遇到好多问题,这个算是其中一个吧,都是各种奇葩的问题。
首先先说一下我的情况,遇到这种404问题,真心是不好意思问人的,只能靠自己来找原因了。
404:本能反应就是路径错误,第二反应才是配置原因
下面就根据我的经验分析一下各种情况
路径错误:
①:form表单提交请求时,路径错误
②:@RequestMapping(“/**”)书写错误
③:
<servlet>
<servlet-name>springMvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMvc</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index</welcome-file>
</welcome-file-list>
错误原因:< url-pattern > /* </ url-pattern > 会匹配*.jsp,会出现返回jsp视图时再次进入spring的DispatcherServlet 类,
导致找不到对应的controller所以报404错。把这一行改为< url-pattern > / </ url-pattern >,运行,OK。
④:
<!--自动扫描目录下所有的类文件 -->
<context:component-scan base-package="com.myspringmvc.controller.*" />
----改为---->>>>
<!--自动扫描目录下所有的类文件 -->
<context:component-scan base-package="com.myspringmvc.controller" />
⑤:我遇到的情况:
原来写项目的时候,我注册了两遍controller,后来将springMVC中的删除了,仅留下了spring中的。
后来就出现了这种情况,甚是奇怪。
spring中的:
<!--配置要扫描的包 -->
<context:component-scan base-package="com.myspringmvc.controller" />
springMVC中的:
<!--配置要扫描的包 -->
<context:component-scan base-package="com.myspringmvc.controller" />
<!--自动扫描目录下所有的类文件 -->
<context:component-scan base-package="com.myspringmvc.controller" />
<!--自动扫描目录下所有的类文件 -->
<context:component-scan base-package="com.myspringmvc.controller" />