JavaURL模式404
servlet映射中的url模式有问题。我正在使用Spring3.0和带注释的控制器。我已经绘制了*。使用Spring的DispatcherServlet。我试图将@PathVariable与url-/test一起使用。do/{username}这是在抛出一个404。尝试了几次尝试和错误,但都无济于事。url模式“/”有效,但我的应用程序的其他部分已损坏(CSS、图像等)
你可以在下面搜索框中键入要查询的问题!
servlet映射中的url模式有问题。我正在使用Spring3.0和带注释的控制器。我已经绘制了*。使用Spring的DispatcherServlet。我试图将@PathVariable与url-/test一起使用。do/{username}这是在抛出一个404。尝试了几次尝试和错误,但都无济于事。url模式“/”有效,但我的应用程序的其他部分已损坏(CSS、图像等)
# 1 楼答案
当使用带有向外映射扩展名(如.do、.html等)的url到spring时,所有url都将由spring处理。因此,您需要将静态资源映射到另一个URL,并使用其他servlet进行处理
示例:您的旧css将映射到
http://localhost:8080/css/style.css
,您的css将映射到http://localhost:8080/static/css/style.css
并为
/static/*
url添加servlet映射并添加servlet来处理这些静态请求
# 2 楼答案
我认为3.0中的URI模板不支持url中带有扩展名的@pathvariable。是的
http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-ann-requestmapping-uri-templates
你需要使用目录url模式,就像你在网站上做的那样。xml
您可以设置spring servlet将忽略映射的路径,如下面的示例https://src.springframework.org/svn/spring-samples/mvc-basic/trunk/ 或 使用网络。这样,对/soft/*等路径的请求将只由spring servlet处理