public interface HandlerMapping
このクラスは、アプリケーション開発者が実装できますが、BeanNameUrlHandlerMapping
および RequestMappingHandlerMapping
はフレームワークに含まれているため、これは必須ではありません。HandlerMapping Bean がアプリケーションコンテキストに登録されていない場合、前者がデフォルトです。
HandlerMapping 実装は、マップされたインターセプターをサポートできますが、そうする必要はありません。ハンドラーは常に HandlerExecutionChain
インスタンスにラップされ、オプションでいくつかの HandlerInterceptor
インスタンスを伴います。DispatcherServlet は最初に各 HandlerInterceptor の preHandle
メソッドを指定された順序で呼び出し、すべての preHandle
メソッドが true
を返した場合、最後にハンドラー自体を呼び出します。
このマッピングをパラメーター化する機能は、この MVC フレームワークの強力で珍しい機能です。例: セッション状態、Cookie 状態、他の多くの変数に基づいてカスタムマッピングを記述することができます。他の MVC フレームワークは、同様に柔軟ではないようです。
メモ: 実装では、Ordered
インターフェースを実装して、並べ替え順序を指定できるため、DispatcherServlet による適用の優先順位を指定できます。順序付けされていないインスタンスは、最も低い優先度として扱われます。
Ordered
, AbstractHandlerMapping
, BeanNameUrlHandlerMapping
, RequestMappingHandlerMapping
修飾子と型 | フィールドと説明 |
---|---|
static StringSE | BEST_MATCHING_PATTERN_ATTRIBUTE ハンドラーマッピング内で最も一致するパターンを含む HttpServletRequest EE 属性の名前。 |
static StringSE | INTROSPECT_TYPE_LEVEL_MAPPING 型レベルのマッピングをインスペクションするかどうかを示すブール HttpServletRequest EE 属性の名前。 |
static StringSE | MATRIX_VARIABLES_ATTRIBUTE URI 変数名とそれぞれの URI マトリックス変数の対応する MultiValueMap を持つマップを含む HttpServletRequest EE 属性の名前。 |
static StringSE | PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE パターン一致の場合はハンドラーマッピング内のパスを含む HttpServletRequest EE 属性の名前、そうでない場合は完全な関連 URI (通常は DispatcherServlet のマッピング内)。 |
static StringSE | PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE マップされたハンドラーに適用可能な作成可能な MediaTypes のセットを含む HttpServletRequest EE 属性の名前。 |
static StringSE | URI_TEMPLATE_VARIABLES_ATTRIBUTE URI テンプレートマップを含む HttpServletRequest EE 属性の名前。変数名を値にマッピングします。 |
修飾子と型 | メソッドと説明 |
---|---|
HandlerExecutionChain | getHandler(HttpServletRequestEE request) このリクエストのハンドラーとインターセプターを返します。 |
static final StringSE PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE
HttpServletRequest
EE 属性の名前、そうでない場合は完全な関連 URI (通常は DispatcherServlet のマッピング内)。メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はありません。URL ベースの HandlerMappings は通常これをサポートしますが、ハンドラーはこのリクエスト属性がすべてのシナリオに存在することを必ずしも期待するべきではありません。
static final StringSE BEST_MATCHING_PATTERN_ATTRIBUTE
HttpServletRequest
EE 属性の名前。メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はありません。URL ベースの HandlerMappings は通常これをサポートしますが、ハンドラーはこのリクエスト属性がすべてのシナリオに存在することを必ずしも期待するべきではありません。
static final StringSE INTROSPECT_TYPE_LEVEL_MAPPING
HttpServletRequest
EE 属性の名前。メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はありません。
static final StringSE URI_TEMPLATE_VARIABLES_ATTRIBUTE
HttpServletRequest
EE 属性の名前。変数名を値にマッピングします。メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はありません。URL ベースの HandlerMappings は通常これをサポートしますが、ハンドラーはこのリクエスト属性がすべてのシナリオに存在することを必ずしも期待するべきではありません。
static final StringSE MATRIX_VARIABLES_ATTRIBUTE
HttpServletRequest
EE 属性の名前。メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はなく、HandlerMapping がマトリックス変数コンテンツを保持するように構成されているかどうかによっては存在しない場合もあります。
static final StringSE PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE
HttpServletRequest
EE 属性の名前。メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はありません。ハンドラーは、このリクエスト属性がすべてのシナリオに存在することを必ずしも期待する必要はありません。
@Nullable HandlerExecutionChain getHandler(HttpServletRequestEE request) throws ExceptionSE
返された HandlerExecutionChain には、タグインターフェースではなくハンドラーオブジェクトが含まれているため、ハンドラーは一切制限されません。例: HandlerAdapter は、別のフレームワークのハンドラーオブジェクトを使用できるように記述できます。
一致が見つからなかった場合、null
を返します。これはエラーではありません。DispatcherServlet は、登録されているすべての HandlerMapping Bean を照会して一致を検出し、ハンドラーが見つからない場合にのみエラーがあると判断します。
request
- 現在の HTTP リクエスト null
ExceptionSE
- 内部エラーがある場合