接口 PathMatcher
- 所有已知实现类:
AntPathMatcher
public interface PathMatcher
Strategy interface forString
-based path matching.Used by
PathMatchingResourcePatternResolver
,AbstractUrlHandlerMapping
, andWebContentInterceptor
.The default implementation is
AntPathMatcher
, supporting the Ant-style pattern syntax.- 从以下版本开始:
- 1.2
- 作者:
- Juergen Hoeller
- 另请参阅:
AntPathMatcher
方法概要
所有方法 实例方法 抽象方法 修饰符和类型 方法 说明 String
combine(String pattern1, String pattern2)
Combines two patterns into a new pattern that is returned.String
extractPathWithinPattern(String pattern, String path)
Given a pattern and a full path, determine the pattern-mapped part.Map<String,String>
extractUriTemplateVariables(String pattern, String path)
Given a pattern and a full path, extract the URI template variables.Comparator<String>
getPatternComparator(String path)
Given a full path, returns aComparator
suitable for sorting patterns in order of explicitness for that path.boolean
isPattern(String path)
Does the givenpath
represent a pattern that can be matched by an implementation of this interface?boolean
match(String pattern, String path)
Match the givenpath
against the givenpattern
, according to this PathMatcher's matching strategy.boolean
matchStart(String pattern, String path)
Match the givenpath
against the corresponding part of the givenpattern
, according to this PathMatcher's matching strategy.
方法详细资料
isPattern
boolean isPattern(String path)
Does the givenpath
represent a pattern that can be matched by an implementation of this interface?If the return value is
false
, then thematch(java.lang.String, java.lang.String)
method does not have to be used because direct equality comparisons on the static path Strings will lead to the same result.- 参数:
path
- the path to check- 返回:
true
if the givenpath
represents a pattern
match
boolean match(String pattern, String path)
Match the givenpath
against the givenpattern
, according to this PathMatcher's matching strategy.- 参数:
pattern
- the pattern to match againstpath
- the path to test- 返回:
true
if the suppliedpath
matched,false
if it didn't
matchStart
boolean matchStart(String pattern, String path)
Match the givenpath
against the corresponding part of the givenpattern
, according to this PathMatcher's matching strategy.Determines whether the pattern at least matches as far as the given base path goes, assuming that a full path may then match as well.
- 参数:
pattern
- the pattern to match againstpath
- the path to test- 返回:
true
if the suppliedpath
matched,false
if it didn't
extractPathWithinPattern
String extractPathWithinPattern(String pattern, String path)
Given a pattern and a full path, determine the pattern-mapped part.This method is supposed to find out which part of the path is matched dynamically through an actual pattern, that is, it strips off a statically defined leading path from the given full path, returning only the actually pattern-matched part of the path.
For example: For "myroot/*.html" as pattern and "myroot/myfile.html" as full path, this method should return "myfile.html". The detailed determination rules are specified to this PathMatcher's matching strategy.
A simple implementation may return the given full path as-is in case of an actual pattern, and the empty String in case of the pattern not containing any dynamic parts (i.e. the
pattern
parameter being a static path that wouldn't qualify as an actualpattern
). A sophisticated implementation will differentiate between the static parts and the dynamic parts of the given path pattern.- 参数:
pattern
- the path patternpath
- the full path to introspect- 返回:
- the pattern-mapped part of the given
path
(nevernull
)
extractUriTemplateVariables
Map<String,String> extractUriTemplateVariables(String pattern, String path)
Given a pattern and a full path, extract the URI template variables. URI template variables are expressed through curly brackets ('{' and '}').For example: For pattern "/hotels/{hotel}" and path "/hotels/1", this method will return a map containing "hotel"->"1".
- 参数:
pattern
- the path pattern, possibly containing URI templatespath
- the full path to extract template variables from- 返回:
- a map, containing variable names as keys; variables values as values
getPatternComparator
Comparator<String> getPatternComparator(String path)
Given a full path, returns aComparator
suitable for sorting patterns in order of explicitness for that path.The full algorithm used depends on the underlying implementation, but generally, the returned
Comparator
will sort a list so that more specific patterns come before generic patterns.- 参数:
path
- the full path to use for comparison- 返回:
- a comparator capable of sorting patterns in order of explicitness
combine
String combine(String pattern1, String pattern2)
Combines two patterns into a new pattern that is returned.The full algorithm used for combining the two pattern depends on the underlying implementation.
- 参数:
pattern1
- the first patternpattern2
- the second pattern- 返回:
- the combination of the two patterns
- 抛出:
IllegalArgumentException
- when the two patterns cannot be combined