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