从以前的SpringMVC项目简化一下做个例子,结果出现了下面的错误:
No mapping found for HTTP request with URI [/rbiz4/uploadFile.html]
上面这条信息是从MyEclipse的控制台里找出来的。
这条信息就是指/rbiz4/uploadFile.html这样的请求找不到对应信息了,于是依次检查
1.jsp文件
2.controller文件
3.web.xml
发现:
1.jsp文件form的action就是uploadFile.html,没错。
2.controller文件的RequestMapping是@RequestMapping(value="/uploadFile"),对上了。
3.web.xml里,将html后缀的请求交给SpringMVC处理的部分是
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
三者都没错,那么错在哪里呢?
那么只有一种可能,控制器类SpringMVC不认识,于是打开spring-servlet.xml,发现有条控制器的信息
<!-- scan the classed marked with @Controller annotation under the package com.controller -->
<context:component-scan base-package="com.company.controller" />
也该修改成实际的
<!-- scan the classed marked with @Controller annotation under the package com.controller -->
<context:component-scan base-package="com.cp.ctrl" />
这样,控制器类才会被SpringMVC识别,不是类名前有个@Controller注解就可以了。
2016年8月1日23:46:46