org.springframework.web.servlet.DispatcherServlet.noHandlerFound No mapping for GET URL
今天在用SSM水项目的时候,由于采用了前后端分离(html页面依然写在项目里),在使用视图解析器解析时控制台报如上错误。
.png)
于是各种百度,大致都说在拦截请求那里
<!--拦截所有请求-->
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
我翻了我的配置,确实用的是/啊,但为什么还是不好使,真是百思不得其解。
后来想到是不是视图解析器配的有问题:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/view/"></property>
<property name="contentType" value="text/html"></property>
<property name="suffix" value=".html"></property>
</bean>
嗯,仔仔细细看了80遍也没有问题,看了报错路径解析的确实没问题,但怎么会找不到对应的html文件呢?
一想到html文件,html文件不是静态资源吗?上面配置的是拦截所有请求啊,肯定会把静态资源请求也拦截掉,那我放开静态资源拦截配置:
<mvc:resources mapping="/view/**" location="/view/"></mvc:resources>
再运行项目,访问成功!
总结
以前老是用spring boot做开发,几乎是0配置,像什么视图解析器,拦截请求等我们全都不需要管,现在用SSM开发,需要大量的配置,我就会有点炸裂了,真的是被spring boot惯坏了。
spring boot虽然方便好用,自动配置帮我们做好了配置,但是出问题就会焦头烂额,不知所措,还是得多读spring 相关源码以及工作流程。

浙公网安备 33010602011771号