インターフェース HandlerMapping

すべての既知のサブインターフェース:
MatchableHandlerMapping
すべての既知の実装クラス:
AbstractDetectingUrlHandlerMappingAbstractHandlerMappingAbstractHandlerMethodMappingAbstractUrlHandlerMappingBeanNameUrlHandlerMappingRequestMappingHandlerMappingRequestMappingInfoHandlerMappingRouterFunctionMappingSimpleUrlHandlerMappingWebSocketHandlerMapping

public interface HandlerMapping
リクエストとハンドラーオブジェクト間のマッピングを定義するオブジェクトによって実装されるインターフェース。

このクラスは、アプリケーション開発者が実装できますが、BeanNameUrlHandlerMapping および RequestMappingHandlerMapping はフレームワークに含まれているため、これは必須ではありません。HandlerMapping Bean がアプリケーションコンテキストに登録されていない場合、前者がデフォルトです。

HandlerMapping 実装は、マップされたインターセプターをサポートできますが、そうする必要はありません。ハンドラーは常に HandlerExecutionChain インスタンスにラップされ、オプションでいくつかの HandlerInterceptor インスタンスを伴います。DispatcherServlet は最初に各 HandlerInterceptor の preHandle メソッドを指定された順序で呼び出し、すべての preHandle メソッドが true を返した場合、最後にハンドラー自体を呼び出します。

このマッピングをパラメーター化する機能は、この MVC フレームワークの強力で珍しい機能です。例: セッション状態、Cookie 状態、他の多くの変数に基づいてカスタムマッピングを記述することができます。他の MVC フレームワークは、同様に柔軟ではないようです。

メモ: 実装では、Ordered インターフェースを実装して、ソート順を指定できるため、DispatcherServlet によって適用される優先順位を指定できます。順序付けされていないインスタンスは、最低の優先度として扱われます。

作成者:
Rod Johnson, Juergen Hoeller
関連事項:
  • フィールドの詳細

    • BEST_MATCHING_HANDLER_ATTRIBUTE

      static final StringSE BEST_MATCHING_HANDLER_ATTRIBUTE
      最も一致するパターンのマップされたハンドラーを含む HttpServletRequestEE 属性の名前。
      導入:
      4.3.21
    • LOOKUP_PATH

      @DeprecatedSE static final StringSE LOOKUP_PATH
      使用すべきではありません。
      5.3 以降、UrlPathHelper.PATH_ATTRIBUTE および ServletRequestPathUtils.PATH_ATTRIBUTE が優先されます。リクエストのマッピングに使用されるキャッシュされたパスにアクセスするには、ServletRequestPathUtils.getCachedPathValue(ServletRequest) を使用します。
      一致するハンドラーを検索するために使用されるパスを含む HttpServletRequestEE 属性の名前。これは、構成された UrlPathHelper に応じて、完全なパスまたはコンテキストパスのない、デコードされたかどうかなどになります。
      導入:
      5.2
    • PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE

      static final StringSE PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE
      パターンマッチングの場合はハンドラーマッピング内のパスを含む HttpServletRequestEE 属性の名前、または完全に関連する URI(通常は DispatcherServlet のマッピング内)else。

      メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はありません。URL ベースの HandlerMappings は通常これをサポートしますが、ハンドラーはこのリクエスト属性がすべてのシナリオに存在することを必ずしも期待するべきではありません。

    • BEST_MATCHING_PATTERN_ATTRIBUTE

      static final StringSE BEST_MATCHING_PATTERN_ATTRIBUTE
      ハンドラーマッピング内で最も一致するパターンを含む HttpServletRequestEE 属性の名前。

      メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はありません。URL ベースの HandlerMappings は通常これをサポートしますが、ハンドラーはこのリクエスト属性がすべてのシナリオに存在することを必ずしも期待するべきではありません。

    • INTROSPECT_TYPE_LEVEL_MAPPING

      static final StringSE INTROSPECT_TYPE_LEVEL_MAPPING
      型レベルのマッピングをインスペクションするかどうかを示すブール HttpServletRequestEE 属性の名前。

      メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はありません。

    • URI_TEMPLATE_VARIABLES_ATTRIBUTE

      static final StringSE URI_TEMPLATE_VARIABLES_ATTRIBUTE
      URI テンプレートマップを含む HttpServletRequestEE 属性の名前。変数名を値にマッピングします。

      メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はありません。URL ベースの HandlerMappings は通常これをサポートしますが、ハンドラーはこのリクエスト属性がすべてのシナリオに存在することを必ずしも期待するべきではありません。

    • MATRIX_VARIABLES_ATTRIBUTE

      static final StringSE MATRIX_VARIABLES_ATTRIBUTE
      URI 変数名とそれぞれの URI マトリックス変数の対応する MultiValueMap を持つマップを含む HttpServletRequestEE 属性の名前。

      メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はなく、HandlerMapping がマトリックス変数コンテンツを保持するように構成されているかどうかによっては存在しない場合もあります。

    • PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE

      static final StringSE PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE
      マップされたハンドラーに適用可能な作成可能な MediaTypes のセットを含む HttpServletRequestEE 属性の名前。

      メモ: この属性は、すべての HandlerMapping 実装でサポートされる必要はありません。ハンドラーは、このリクエスト属性がすべてのシナリオに存在することを必ずしも期待する必要はありません。

  • メソッドの詳細

    • usesPathPatterns

      default boolean usesPathPatterns()
      この HandlerMapping インスタンスが解析済み PathPattern の使用を有効にしているかどうか。この場合、DispatcherServlet は自動的に RequestPath を parses して、HandlerMappingHandlerInterceptor、その他のコンポーネントの access で使用できるようにします。
      導入:
      5.3
    • getHandler

      このリクエストのハンドラーとインターセプターを返します。選択は、リクエスト URL、セッション状態、実装クラスが選択する任意の要素で行うことができます。

      返された HandlerExecutionChain には、タグインターフェースではなくハンドラーオブジェクトが含まれているため、ハンドラーは一切制限されません。例: HandlerAdapter は、別のフレームワークのハンドラーオブジェクトを使用できるように記述できます。

      一致が見つからなかった場合、null を返します。これはエラーではありません。DispatcherServlet は、登録されているすべての HandlerMapping Bean を照会して一致を検出し、ハンドラーが見つからない場合にのみエラーがあると判断します。

      パラメーター:
      request - 現在の HTTP リクエスト
      戻り値:
      ハンドラーオブジェクトとインターセプターを含む HandlerExecutionChain インスタンス、またはマッピングが見つからない場合は null 
      例外:
      ExceptionSE - 内部エラーがある場合