org.springframework.web.servlet.DispatcherServlet noHandlerFound

使用注解方式配置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.

发表评论