インターフェース HandlerMapping
- すべての既知のサブインターフェース:
MatchableHandlerMapping
- すべての既知の実装クラス:
AbstractDetectingUrlHandlerMapping、AbstractHandlerMapping、AbstractHandlerMethodMapping、AbstractUrlHandlerMapping、BeanNameUrlHandlerMapping、RequestMappingHandlerMapping、RequestMappingInfoHandlerMapping、RouterFunctionMapping、SimpleUrlHandlerMapping、WebSocketHandlerMapping
このクラスは、アプリケーション開発者が実装できますが、BeanNameUrlHandlerMapping および RequestMappingHandlerMapping はフレームワークに含まれているため、これは必須ではありません。HandlerMapping Bean がアプリケーションコンテキストに登録されていない場合、前者がデフォルトです。
HandlerMapping 実装は、マップされたインターセプターをサポートできますが、そうする必要はありません。ハンドラーは常に HandlerExecutionChain インスタンスにラップされ、オプションでいくつかの HandlerInterceptor インスタンスを伴います。DispatcherServlet は最初に各 HandlerInterceptor の preHandle メソッドを指定された順序で呼び出し、すべての preHandle メソッドが true を返した場合、最後にハンドラー自体を呼び出します。
このマッピングをパラメーター化する機能は、この MVC フレームワークの強力で珍しい機能です。例: セッション状態、Cookie 状態、他の多くの変数に基づいてカスタムマッピングを記述することができます。他の MVC フレームワークは、同様に柔軟ではないようです。
メモ: 実装では、Ordered インターフェースを実装して、ソート順を指定できるため、DispatcherServlet によって適用される優先順位を指定できます。順序付けされていないインスタンスは、最低の優先度として扱われます。
- 作成者:
- Rod Johnson, Juergen Hoeller
- 関連事項:
フィールドのサマリー
フィールド修飾子と型フィールド説明static final StringSE最も一致するパターンのマップされたハンドラーを含むHttpServletRequestEE 属性の名前。static final StringSEハンドラーマッピング内で最も一致するパターンを含むHttpServletRequestEE 属性の名前。static final StringSE型レベルのマッピングをインスペクションするかどうかを示すブールHttpServletRequestEE 属性の名前。static final StringSE使用すべきではありません。static final StringSEURI 変数名とそれぞれの URI マトリックス変数の対応する MultiValueMap を持つマップを含むHttpServletRequestEE 属性の名前。static final StringSEパターン一致の場合はハンドラーマッピング内のパスを含むHttpServletRequestEE 属性の名前、そうでない場合は完全な関連 URI (通常は DispatcherServlet のマッピング内)。static final StringSEマップされたハンドラーに適用可能な作成可能な MediaTypes のセットを含むHttpServletRequestEE 属性の名前。static final StringSEURI テンプレートマップを含むHttpServletRequestEE 属性の名前。変数名を値にマッピングします。メソッドのサマリー
修飾子と型メソッド説明getHandler(HttpServletRequestEE request) このリクエストのハンドラーとインターセプターを返します。default booleanこのHandlerMappingインスタンスが解析済みPathPatternの使用を有効にしているかどうか。この場合、DispatcherServletは自動的にRequestPathをparsesして、HandlerMapping、HandlerInterceptor、その他のコンポーネントのaccessで使用できるようにします。
フィールドの詳細
BEST_MATCHING_HANDLER_ATTRIBUTE
最も一致するパターンのマップされたハンドラーを含むHttpServletRequestEE 属性の名前。- 導入:
- 4.3.21
LOOKUP_PATH
使用すべきではありません。5.3 以降、UrlPathHelper.PATH_ATTRIBUTEおよびServletRequestPathUtils.PATH_ATTRIBUTEが優先されます。リクエストのマッピングに使用されるキャッシュされたパスにアクセスするには、ServletRequestPathUtils.getCachedPathValue(ServletRequest)を使用します。一致するハンドラーを検索するために使用されるパスを含むHttpServletRequestEE 属性の名前。これは、構成されたUrlPathHelperに応じて、完全なパスまたはコンテキストパスのない、デコードされたかどうかなどになります。- 導入:
- 5.2
PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE
パターン一致の場合はハンドラーマッピング内のパスを含むHttpServletRequestEE 属性の名前、そうでない場合は完全な関連 URI (通常は DispatcherServlet のマッピング内)。メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はありません。URL ベースの HandlerMappings は通常これをサポートしますが、ハンドラーはこのリクエスト属性がすべてのシナリオに存在することを必ずしも期待するべきではありません。
BEST_MATCHING_PATTERN_ATTRIBUTE
ハンドラーマッピング内で最も一致するパターンを含むHttpServletRequestEE 属性の名前。メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はありません。URL ベースの HandlerMappings は通常これをサポートしますが、ハンドラーはこのリクエスト属性がすべてのシナリオに存在することを必ずしも期待するべきではありません。
INTROSPECT_TYPE_LEVEL_MAPPING
型レベルのマッピングをインスペクションするかどうかを示すブールHttpServletRequestEE 属性の名前。メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はありません。
URI_TEMPLATE_VARIABLES_ATTRIBUTE
URI テンプレートマップを含むHttpServletRequestEE 属性の名前。変数名を値にマッピングします。メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はありません。URL ベースの HandlerMappings は通常これをサポートしますが、ハンドラーはこのリクエスト属性がすべてのシナリオに存在することを必ずしも期待するべきではありません。
MATRIX_VARIABLES_ATTRIBUTE
URI 変数名とそれぞれの URI マトリックス変数の対応する MultiValueMap を持つマップを含むHttpServletRequestEE 属性の名前。メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はなく、HandlerMapping がマトリックス変数コンテンツを保持するように構成されているかどうかによっては存在しない場合もあります。
PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE
マップされたハンドラーに適用可能な作成可能な MediaTypes のセットを含むHttpServletRequestEE 属性の名前。メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はありません。ハンドラーは、このリクエスト属性がすべてのシナリオに存在することを必ずしも期待する必要はありません。
メソッドの詳細
usesPathPatterns
default boolean usesPathPatterns()このHandlerMappingインスタンスが解析済みPathPatternの使用を有効にしているかどうか。この場合、DispatcherServletは自動的にRequestPathをparsesして、HandlerMapping、HandlerInterceptor、その他のコンポーネントのaccessで使用できるようにします。- 導入:
- 5.3
getHandler
このリクエストのハンドラーとインターセプターを返します。選択は、リクエスト URL、セッション状態、実装クラスが選択する任意の要素で行うことができます。返された HandlerExecutionChain には、タグインターフェースではなくハンドラーオブジェクトが含まれているため、ハンドラーは一切制限されません。例: HandlerAdapter は、別のフレームワークのハンドラーオブジェクトを使用できるように記述できます。
一致が見つからなかった場合、
nullを返します。これはエラーではありません。DispatcherServlet は、登録されているすべての HandlerMapping Bean を照会して一致を検出し、ハンドラーが見つからない場合にのみエラーがあると判断します。- パラメーター:
request- 現在の HTTP リクエスト- 戻り値:
- ハンドラーオブジェクトとインターセプターを含む HandlerExecutionChain インスタンス、またはマッピングが見つからない場合は
null - 例外:
ExceptionSE- 内部エラーがある場合
UrlPathHelper.PATH_ATTRIBUTEおよびServletRequestPathUtils.PATH_ATTRIBUTEを推奨。