87

当我们提到路径时,两个星号而不是一个星号有什么区别?

早些时候我正在调试我的 Spring 3 项目。我试图添加一个 .swf 使用

<spring:url var="flashy" value="/resources/images/flash.swf"/>

我的 web.xml 的 ResourceServlet 看起来像

<servlet-name>Resource Servlet </servlet-name>
<url-pattern>/resources/*</url-pattern>

但不幸的是,我收到了这个错误:

WARN org.springframework.js.resources.ResourceServlet - An attempt to access a protected resource at /images/flash.swf was disallowed.

我发现这很奇怪,因为我在images文件夹中的所有图像都被访问了,但是我的 .swf 怎么会被“保护”呢?

之后,我决定将其更改/resources/*/resources/**,它终于奏效了。我的问题是……为什么?

4

1 回答 1

53

这是在Apache antSpring 团队中使用的路径模式,并在整个框架中实现并使用它。

作为参考,请参阅AntPathMatcher的 javadoc (最新的javadoc 似乎有问题,所以我链接一个旧的)。

回到你的问题,根据文档,它只有 3 条规则:

  1. ?匹配一个字符
  2. *匹配零个或多个字符
  3. **匹配路径中的零个或多个“目录”
于 2014-03-02T14:24:15.053 回答