從以前的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