No mapping found for HTTP request with URI
出现这个问题的原因是在web.xml中配置错了,如:
当你在control中返回一个路径的时候,它又把路径(/view/index.jsp)当作一个请求被dispatcherServlet所拦截。所以会抛出异常,解决的办法有两个:
第一即使让dispatcherServlet的拦截加上后缀如:*.do;
这样以jsp后缀的就不会别拦截了。
第二个方法是在spring-servlet.xml中加入:
<mvc:default-servlet-handler/>
对于第二种方法的说明
我们可以用Web服务器的defaultServlet来处理静态文件,也可用Spring框架来处理静态文件。使用Spring来处理,可以在配置中加入以下代码:
<mvc:default-servlet-handler/>
这样spring会用默认的Servlet来响应静态文件,(DefaultServletHttpRequestHandler在容器启动是会使用主流web容器默认servlet的名称列表自动查找容器的默认servlet,包括Tomcat, Jetty, Glassfish, JBoss, Resin, WebLogic, and WebSphere。),如果为默认servlet配置了新的名称,或者这个容器servlet名字不在spring列表中是,必须显式配置默认servlet的名字,如下:
<mvc:default-servlet-handler default-servlet-name="customServlet"/>
或者使用mvc:resources方式来处理,如下:
<mvc:resources mapping="/images/**" location="/images/" />
使用<mvc:resources/>元素把images/**映射到ResourceHttpRequestHandler进行处理,location指定静态资源的位置
由此,可以发现还有第三种解决方式,就是用mvc:resources方式来处理