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