No mapping found for HTTP request with URI [....] in DispatcherServlet with name 'springMVC'

这个错误,为在页面报404错误。

web.xml 配置如下:

  <servlet>
    	<servlet-name>springMVC</servlet-name>
    	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    	<init-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>classpath:springMVC-servlet.xml</param-value>
    	</init-param>
    	<!-- load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法)。
    	取值1,2,3,4,5代表的是优先级,而非启动延迟时间 -->
    	<load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
    	<servlet-name>springMVC</servlet-name>
    	<url-pattern>/</url-pattern>
    </servlet-mapping>

<url-pattern>/</url-pattern>  这样的配置,就是把所有的请求,都交给spring 的DispatcherServlet前端控制器,做统一处理。

这样,就会造成,无法访问所有静态资源,如:html,js,css,image等等。

所以,我们需要让spring做一件事,就是如果访问的是静态资源,就让这个请求交给web容器处理。

方法一:直接在 web.xml 中,配置默认的servlet-mapping。代码如下

    <servlet-mapping>
    	<servlet-name>default</servlet-name>
    	<url-pattern>/*.html</url-pattern>
        <url-pattern>/*.css</url-pattern>
        <url-pattern>/*.js</url-pattern>
    </servlet-mapping>

//这里的 default 配置。spring 就会知道,应该使用web容器的处理。
而下面的<url-pattern> 的配置,就是告诉 web处理哪些资源。

方法二: 就是在 springservlet-mvc.xml中加上一句 mvc标签:<mvc:default-servlet-handler />

        <!-- 
		在springMVC-servlet.xml中配置<mvc:default-servlet-handler />后,
		会在Spring MVC上下文中定义一个
		org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,
		它会像一个检查员,对进入DispatcherServlet的URL进行筛查,
		如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,
		如果不是静态资源的请求,才由DispatcherServlet继续处理。
 	 -->
 	<mvc:default-servlet-handler />

方法三:<mvc:resources />

<mvc:resources location="/,classpath:/page/" mapping="/resources/**"/> 

/*
 * location:静态资源的位置。多个用‘,’隔开。 我这里是的位置是:‘/’表示 web根路径。
 *classpath:/page/ 表示 类路径下的page文件下的资源。
 *
 *都映射成/resources 而** 代表 所有子目录。
*
*如果 page下有个 html目录,下面有个index.html. 我们可以用:/resources/html/index.html

*如果WebContent下有个image目录,下面有个 ioc.png。 我们也可以用:/resources/image/ioc.png.

*至于 不同文件夹下相同的 文件名,会不会报错。我还没试过。

猜你喜欢

转载自blog.csdn.net/weixin_42697074/article/details/84236563