天天看点

spring mvc路径匹配原则

在Spring MVC中经常要用到拦截器,在配置需要要拦截的路径时经常用到<mvc:mapping/>子标签,其有一个path属性,它就是用来指定需要拦截的路径的。例如:

1

2

3

4

<code>&lt;</code><code>mvc:interceptor</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>mvc:mapping</code> <code>path</code><code>=</code><code>"/**"</code> <code>/&gt;</code>

<code>        </code><code>&lt;</code><code>bean</code> <code>class</code><code>=</code><code>"com.test.interceptor.TestInterceptor"</code> <code>/&gt;</code>

<code>&lt;/</code><code>mvc:interceptor</code><code>&gt;</code>

根据以上配置,此拦截器会拦截所有的请求。

Spring MVC中的路径匹配要比标准的web.xml要灵活的多。默认的策略实现了 org.springframework.util.AntPathMatcher,就像名字提示的那样,路径模式是使用了Apache Ant的样式路径,Apache Ant样式的路径有三种通配符匹配方法(在下面的表格中列出)

这些可以组合出很多种灵活的路径模式

Table Ant Wildcard Characters

Wildcard

Description

?

匹配任何单字符

*

匹配0或者任意数量的字符

**

匹配0或者更多的目录

Table Example Ant-Style Path Patterns

Path

/app/*.x

匹配(Matches)所有在app路径下的.x文件

/app/p?ttern

匹配(Matches) /app/pattern 和 /app/pXttern,但是不包括/app/pttern

/**/example

匹配(Matches) /app/example, /app/foo/example, 和 /example

/app/**/dir/file.

匹配(Matches) /app/dir/file.jsp, /app/foo/dir/file.html,/app/foo/bar/dir/file.pdf, 和 /app/dir/file.java

/**/*.jsp

匹配(Matches)任何的.jsp 文件

 本文转自 独孤环宇 51CTO博客,原文链接:http://blog.51cto.com/snowtiger/2053193