发表于: 2016-10-23 00:12:25

0 2222


哎,今天一晚上都纠结在调试上了

兴奋的打开RESTClient,输入网址,报错404,检查发现低级错误,spring-mvc.xml配置文件放在了controller类包下,dispatcherServlet找不到它

改了以后,重新输入,再报404,检查发现spring-mvc.xml文件没有写<mvc:annotation-driven/>这句话,我的理解是也就没有HandlerMapping的实体创建了,后面也就过不去了

再改,再继续404,再次发现低级错误,自动扫描类包名字写错(copy来的文件。。没有改)

继续404。。。。这次报了个奇特的警
十月 22, 2016 11:17:55 下午 org.springframework.web.servlet.DispatcherServlet noHandlerFound
警告: No mapping found for HTTP request with URI [/springMVC_rest03/restservice/testRestGet/11] in DispatcherServlet with name 'dispatcherServlet'

网上查解决办法,集中反馈在url-pattern的设置上,都说把/*改成/,原因是如下

{

关于web.xml的url映射的小知识:
<url-pattern>/</url-pattern>  会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url
<url-pattern>/*</url-pattern> 会匹配所有url:路径型的和后缀型的url(包括/login,*.jsp,*.js和*.html等)

}

当用/*时,handler返回的视图名字+.jsp会通过DispatcherServlet,然后再往后找handlerMapping,然后发现没有,然后报警

但这里我本来就用的/,也就不存在他说的这个情况;并且为了验证,我在controller组件里我要用到的那个方法中,放了一个println,然而输入网址之后控制台并没有输出任何东西,只有那个报警,也就是说根本没有走到那个方法,就已经卡住了,更不要说后面返回视图组件了

不过可以基本确定的是,<url-pattern>这里确实是有问题的

我这样设置了一下<url-pattern>*.do</url-pattern>,网址后加上.do结果就顺利通过了,但是我仍然不知道为什么/就通不过。。。。。。。。。。。。。。。

先睡觉,明天重点看看这个问题吧


返回列表 返回列表
评论

    分享到