你的位置:首页 > Java教程

[Java教程]Spring mvc web.xml中 urlpatten的配置问题


在使用spring mvc 是我们会配置spring 的DispatcherServlet作为请求的转发器。

<servlet>  <servlet-name>spring</servlet-name>  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  <load-on-startup>1</load-on-startup></servlet><servlet-mapping>  <servlet-name>spring</servlet-name>  <url-pattern>/</url-pattern></servlet-mapping>

这里url-pattern 是设置可以处理的请求路径模式。我遇到一个问题就是当我把url-pattern设置为 /* 时我的请求就总是报出

HTTP Status 404 -的错误。

后台也访问到了我的Controller 但是在返回ModeAndView 时我指定的 页面 却找不到了。

ffffffff九月 29, 2016 11:19:31 下午 org.springframework.web.servlet.PageNotFound noHandlerFound警告: No mapping found for HTTP request with URI [/SpringMvcDemo/WEB-INF/jsp/hello.jsp] in DispatcherServlet with name 'spring'

fffffff是我的请求到了controller的输出。 hello 是设置的view 名称。在我的WEB-INFO/jsp 目录下也确实存在hello.jsp 文件。

经查阅网络找到问题所在:

原来,关键就在于url-pattern的设置:当是<url-pattern>/</url-pattern> 会匹配到/hello这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url当是<url-pattern>/*</url-pattern> 会匹配所有url:路径的url和后缀型的url(包括/hello,*.jsp,*.js和*.html等)

所以,改成 / 就OK 了。