public interface PathMatcher
String
ベースのパスマッチングの戦略インターフェース。PathMatchingResourcePatternResolver
、AbstractUrlHandlerMapping
、WebContentInterceptor
で使用されます。
デフォルトの実装は AntPathMatcher
で、Ant スタイルのパターン構文をサポートしています。
AntPathMatcher
修飾子と型 | メソッドと説明 |
---|---|
StringSE | combine(StringSE pattern1, StringSE pattern2) 2 つのパターンを組み合わせて、返される新しいパターンにします。 |
StringSE | extractPathWithinPattern(StringSE pattern, StringSE path) パターンとフルパスを指定して、パターンマッピングされた部分を決定します。 |
MapSE<StringSE, StringSE> | extractUriTemplateVariables(StringSE pattern, StringSE path) パターンとフルパスを指定して、URI テンプレート変数を抽出します。 |
ComparatorSE<StringSE> | getPatternComparator(StringSE path) フルパスを指定すると、そのパスの明示性の順序でパターンをソートするのに適した Comparator SE を返します。 |
boolean | isPattern(StringSE path) 指定された path は、このインターフェースの実装によって一致するパターンを表しますか? |
boolean | match(StringSE pattern, StringSE path) この PathMatcher のマッチング戦略に従って、指定された path を指定された pattern に一致させます。 |
boolean | matchStart(StringSE pattern, StringSE path) この PathMatcher のマッチング戦略に従って、指定された path を指定された pattern の対応する部分と一致させます。 |
boolean isPattern(StringSE path)
path
は、このインターフェースの実装によって一致するパターンを表しますか? 戻り値が false
の場合、静的パス文字列での直接の等価比較は同じ結果をもたらすため、match(java.lang.String, java.lang.String)
メソッドを使用する必要はありません。
path
- チェックするパス文字列 path
がパターンを表す場合、true
boolean match(StringSE pattern, StringSE path)
path
を指定された pattern
に一致させます。pattern
- 照合するパターン path
- テストするパス文字列 path
が一致した場合は true
、一致しなかった場合は false
boolean matchStart(StringSE pattern, StringSE path)
path
を指定された pattern
の対応する部分と一致させます。完全なパスも一致すると想定して、指定されたベースパスに至るまでパターンが少なくとも一致するかどうかを決定します。
pattern
- 照合するパターン path
- テストするパス文字列 path
が一致した場合は true
、一致しなかった場合は false
StringSE extractPathWithinPattern(StringSE pattern, StringSE path)
このメソッドは、パスのどの部分が実際のパターンを通して動的に一致するかを見つけることになっています。つまり、指定されたフルパスから静的に定義された先頭のパスを取り除き、実際にパターンに一致したパスの部分のみを返します。
次に例を示します: パターンとして "myroot/*.html"、フルパスとして "myroot/myfile.html" の場合、このメソッドは "myfile.html" を返す必要があります。詳細な決定ルールは、この PathMatcher のマッチング戦略に指定されています。
単純な実装は、実際のパターンの場合はそのままのフルパスを返し、動的部分を含まないパターンの場合は空の文字列を返します(つまり、pattern
パラメーターは実際のパスとして適格でない静的パスです) pattern
)。高度な実装では、特定のパスパターンの静的部分と動的部分を区別します。
pattern
- パスパターン path
- イントロスペクトへのフルパス path
のパターンマッピングされた部分 (非 null
)MapSE<StringSE,StringSE> extractUriTemplateVariables(StringSE pattern, StringSE path)
次に例を示します: パターン "/hotels/{hotel}" およびパス "/hotels/1" の場合、このメソッドは "hotel" -> "1" を含むマップを返します。
pattern
- おそらく URI テンプレートを含むパスパターン path
- テンプレート変数を抽出するフルパス ComparatorSE<StringSE> getPatternComparator(StringSE path)
Comparator
SE を返します。 使用される完全なアルゴリズムは、基礎となる実装によって異なりますが、通常、返される Comparator
は、より具体的なパターンが一般的なパターンの前に来るようにリストをソートSEします。
path
- 比較に使用する完全なパス StringSE combine(StringSE pattern1, StringSE pattern2)
2 つのパターンを結合するために使用される完全なアルゴリズムは、基礎となる実装に依存します。
pattern1
- 最初のパターン pattern2
- 2 番目のパターン IllegalArgumentExceptionSE
- 2 つのパターンを結合できない場合