Interface PathMatcher
- All Known Implementing Classes:
AntPathMatcher
String
-based path matching.
Used by PathMatchingResourcePatternResolver
,
AbstractUrlHandlerMapping
,
and WebContentInterceptor
.
The default implementation is AntPathMatcher
, supporting the
Ant-style pattern syntax.
- Since:
- 1.2
- Author:
- Juergen Hoeller
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionCombines two patterns into a new pattern that is returned.extractPathWithinPattern
(String pattern, String path) Given a pattern and a full path, determine the pattern-mapped part.extractUriTemplateVariables
(String pattern, String path) Given a pattern and a full path, extract the URI template variables.getPatternComparator
(String path) Given a full path, returns aComparator
suitable for sorting patterns in order of explicitness for that path.boolean
Does the givenpath
represent a pattern that can be matched by an implementation of this interface?boolean
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.
-
Method Details
-
isPattern
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.- Parameters:
path
- the path to check- Returns:
true
if the givenpath
represents a pattern
-
match
Match the givenpath
against the givenpattern
, according to this PathMatcher's matching strategy.- Parameters:
pattern
- the pattern to match againstpath
- the path to test- Returns:
true
if the suppliedpath
matched,false
if it didn't
-
matchStart
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.
- Parameters:
pattern
- the pattern to match againstpath
- the path to test- Returns:
true
if the suppliedpath
matched,false
if it didn't
-
extractPathWithinPattern
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.- Parameters:
pattern
- the path patternpath
- the full path to introspect- Returns:
- the pattern-mapped part of the given
path
(nevernull
)
-
extractUriTemplateVariables
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".
- Parameters:
pattern
- the path pattern, possibly containing URI templatespath
- the full path to extract template variables from- Returns:
- a map, containing variable names as keys; variables values as values
-
getPatternComparator
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.- Parameters:
path
- the full path to use for comparison- Returns:
- a comparator capable of sorting patterns in order of explicitness
-
combine
Combines two patterns into a new pattern that is returned.The full algorithm used for combining the two pattern depends on the underlying implementation.
- Parameters:
pattern1
- the first patternpattern2
- the second pattern- Returns:
- the combination of the two patterns
- Throws:
IllegalArgumentException
- when the two patterns cannot be combined
-