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
HttpServletRequest
EE 属性の名前。@DeprecatedSE static final StringSE LOOKUP_PATH
UrlPathHelper.PATH_ATTRIBUTE
と ServletRequestPathUtils.PATH_ATTRIBUTE
を使用してください。リクエストマッピングに使用されるキャッシュパスにアクセスするには、ServletRequestPathUtils.getCachedPathValue(ServletRequest)
を使用します。HttpServletRequest
EE 属性の名前。これは、構成された UrlPathHelper
に応じて、完全なパスまたはコンテキストパスのない、デコードされたかどうかなどになります。static final StringSE PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE
HttpServletRequest
EE 属性の名前、または完全に関連する URI(通常は DispatcherServlet のマッピング内)else。メモ: この属性は、すべての 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 実装でサポートされる必要はありません。ハンドラーは、このリクエスト属性がすべてのシナリオに存在することを必ずしも期待する必要はありません。
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
- 内部エラーがある場合