ssm框架jsp访问页面报“[org.springframework.web.servlet.PageNotFound]”错误,网页也出现了404错误,小编当时是这样“http://localhost:8080/admin/user/goLogin”访问的,然后跳转登录页面就报错了,先来看PageNotFound页面未找到这个错误的具体描述吧,如下所示:
[org.springframework.web.servlet.PageNotFound] - No mapping found for HTTP request with URI [/WEB-INF/views/jsp/goLogin.jsp] in DispatcherServlet with name 'english’
错误分析:
之所以出现上述"PageNotFound"错误,一定是你在自己javaweb项目的web.xml配置的是类似“/*”这样的(springmvc视图解析器没配置除外),如下所示:
<servlet-mapping> <servlet-name>english</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
如何解决这样的问题呢?
方法一:将上面的<url-pattern>改成如下这样,不能直接这样"/*"使用,必须要添加点什么,如下这样既可,同时你的controller控制类接口@RequestMapping注解上可能要去掉“admin”这个单词:
<servlet-mapping> <servlet-name>english</servlet-name> <url-pattern>/admin/*</url-pattern> </servlet-mapping>
方式二:<url-pattern>之间不要带“*”符号,只要一个“/”斜杠,如下所示:
<servlet-mapping> <servlet-name>english</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
然后在spring-mvc.xml这个视图解析图的配置文件中加入如下配置,允许静态文件加载,不然的话jsp网页就会失去css,js等样式了,如下:
<mvc:default-servlet-handler/>
网上的很多教程根本都是抄袭,完全没有解决“org.springframework.web.servlet.PageNotFound”这样的404错误问题。