使用注解方式配置controller时遇到的错误,提示:
org.springframework.web.servlet.DispatcherServlet noHandlerFound 警告: No mapping found for HTTP request with URI [/springmvc/WEB-INF/jsp/index.jsp] in DispatcherServlet with name ‘spring’
当时我能在 WEB-INFO/jsp/下找到index.jsp,查资料发现,是web.xml配置文件问题:
把org.springframework.web.servlet.DispatcherServlet的mapping修改如下
<servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
改为:
<servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
即可解决,原因:
/会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的
后缀型url/*会匹配所有url:路径型的和后缀型的url(包括/login,*.jsp,*.js和*.html等)
所以当为 /* 时,当controller返回 *.jsp 页面时用户经过 despatcher 进行处理,当时没有找到对应的controller,所以404.