クラス MvcUriComponentsBuilder

java.lang.ObjectSE
org.springframework.web.servlet.mvc.method.annotation.MvcUriComponentsBuilder

public class MvcUriComponentsBuilder extends ObjectSE
Spring MVC コントローラーで @RequestMapping メソッドを指すことにより、UriComponentsBuilder のインスタンスを作成します。

メソッドにはいくつかのグループがあります。

  • ServletUriComponentsBuilder.fromCurrentServletMapping() の呼び出しによって決定された現在のリクエストからの情報を使用してリンクを準備する静的 fromXxx(...) メソッド。
  • 静的 fromXxx(UriComponentsBuilder,...) メソッドには、リクエストのコンテキスト外で操作するときに baseUrl を指定できます。
  • MvcUriComponentsBuilder のインスタンスが relativeTo(org.springframework.web.util.UriComponentsBuilder) を介して baseUrl で作成されるインスタンスベースの withXxx(...) メソッド。

注意 : このクラスは、クライアントから発信されたプロトコルを反映するために、存在する場合、"Forwarded" (RFC 7239)、"X-Forwarded-Host"、"X-Forwarded-Port"、"X-Forwarded-Proto" ヘッダーの値を使用します。とアドレス。ForwardedHeaderFilter を使用して、抽出して使用するか、このようなヘッダーを破棄するかを中央から選択することを検討してください。このフィルターの詳細については、Spring Framework リファレンスを参照してください。

導入:
4.0
作成者:
Oliver Gierke, Rossen Stoyanchev, Sam Brannen, Juergen Hoeller
  • フィールドの詳細

  • コンストラクターの詳細

  • メソッドの詳細

    • relativeTo

      public static MvcUriComponentsBuilder relativeTo(UriComponentsBuilder baseUrl)
      ベース URL を使用して、このクラスのインスタンスを作成します。その後、インスタンスベースの withXxx(...} メソッドの 1 つを呼び出すと、指定されたベース URL に関連する URL が作成されます。
    • fromController

      public static UriComponentsBuilder fromController(ClassSE<?> controllerType)
      コントローラークラスのマッピングとサーブレットマッピングを含む現在のリクエスト情報から UriComponentsBuilder を作成します。コントローラーに複数のマッピングが含まれている場合、最初のマッピングのみが使用されます。

      注意 : このメソッドは、"Forwarded" および "X-Forwarded-*" ヘッダーから値が見つかった場合に抽出します。クラスレベルのドキュメントを参照してください。

      パラメーター:
      controllerType - URI を構築するコントローラー
      戻り値:
      UriComponentsBuilder インスタンス (非 null)
    • fromController

      public static UriComponentsBuilder fromController(@Nullable UriComponentsBuilder builder, ClassSE<?> controllerType)
      ベース URL を表す UriComponentsBuilder を受け入れる fromController(Class) の代替。これは、リクエストを処理するコンテキスト外で MvcUriComponentsBuilder を使用する場合、または現在のリクエストと一致しないカスタム baseUrl を適用する場合に便利です。

      注意 : このメソッドは、"Forwarded" および "X-Forwarded-*" ヘッダーから値が見つかった場合に抽出します。クラスレベルのドキュメントを参照してください。

      パラメーター:
      builder - ベース URL のビルダー。ビルダーは複製されるため変更されず、以降の呼び出しで再利用できます。
      controllerType - URI を構築するコントローラー
      戻り値:
      UriComponentsBuilder インスタンス (非 null)
    • fromMethodName

      public static UriComponentsBuilder fromMethodName(ClassSE<?> controllerType, StringSE methodName, ObjectSE... args)
      コントローラーメソッドとメソッド引数値の配列のマッピングから UriComponentsBuilder を作成します。このメソッドは fromMethod(Class, Method, Object...) に委譲します。

      注意 : このメソッドは、"Forwarded" および "X-Forwarded-*" ヘッダーから値が見つかった場合に抽出します。クラスレベルのドキュメントを参照してください。

      パラメーター:
      controllerType - コントローラー
      methodName - メソッド名
      args - 引数の値
      戻り値:
      UriComponentsBuilder インスタンス、決して null
      例外:
      IllegalArgumentExceptionSE - 一致がない場合、または一致するメソッドが複数ある場合
    • fromMethodName

      public static UriComponentsBuilder fromMethodName(UriComponentsBuilder builder, ClassSE<?> controllerType, StringSE methodName, ObjectSE... args)
      ベース URL を表す UriComponentsBuilder を受け入れる fromMethodName(Class, String, Object...) の代替。これは、リクエストを処理するコンテキスト外で MvcUriComponentsBuilder を使用する場合、または現在のリクエストと一致しないカスタム baseUrl を適用する場合に便利です。

      注意 : このメソッドは、"Forwarded" および "X-Forwarded-*" ヘッダーから値が見つかった場合に抽出します。クラスレベルのドキュメントを参照してください。

      パラメーター:
      builder - ベース URL のビルダー。ビルダーは複製されるため変更されず、以降の呼び出しで再利用できます。
      controllerType - コントローラー
      methodName - メソッド名
      args - 引数の値
      戻り値:
      UriComponentsBuilder インスタンス、決して null
      例外:
      IllegalArgumentExceptionSE - 一致がない場合、または一致するメソッドが複数ある場合
    • fromMethod

      public static UriComponentsBuilder fromMethod(ClassSE<?> controllerType, MethodSE method, ObjectSE... args)
      コントローラーメソッドとメソッド引数値の配列のマッピングから UriComponentsBuilder を作成します。値の配列は、コントローラーメソッドのシグネチャーと一致する必要があります。@RequestParam および @PathVariable の値は(UriComponentsContributor の実装を介して)URI を構築するために使用されますが、残りの引数値は無視され、null にすることができます。

      注意 : このメソッドは、"Forwarded" および "X-Forwarded-*" ヘッダーから値が見つかった場合に抽出します。クラスレベルのドキュメントを参照してください。

      パラメーター:
      controllerType - コントローラーの型
      method - コントローラーメソッド
      args - コントローラーメソッドの引数値
      戻り値:
      UriComponentsBuilder インスタンス、決して null
      導入:
      4.2
    • fromMethod

      public static UriComponentsBuilder fromMethod(UriComponentsBuilder baseUrl, @Nullable ClassSE<?> controllerType, MethodSE method, ObjectSE... args)
      ベース URL を表す UriComponentsBuilder を受け入れる fromMethod(Class, Method, Object...) の代替。これは、リクエストを処理するコンテキスト外で MvcUriComponentsBuilder を使用する場合、または現在のリクエストと一致しないカスタム baseUrl を適用する場合に便利です。

      注意 : このメソッドは、"Forwarded" および "X-Forwarded-*" ヘッダーから値が見つかった場合に抽出します。クラスレベルのドキュメントを参照してください。

      パラメーター:
      baseUrl - ベース URL のビルダー。ビルダーは複製されるため変更されず、以降の呼び出しで再利用できます。
      controllerType - コントローラーの型
      method - コントローラーメソッド
      args - コントローラーメソッドの引数値
      戻り値:
      UriComponentsBuilder インスタンス (非 null)
      導入:
      4.2
    • fromMethodCall

      public static UriComponentsBuilder fromMethodCall(ObjectSE info)
      「モック」コントローラーメソッドを呼び出して、UriComponentsBuilder を作成します。次に、コントローラーメソッドと指定された引数値を使用して、fromMethod(Class, Method, Object...) に委譲します。

      例: このコントローラーを指定:

       @RequestMapping("/people/{id}/addresses")
       class AddressController {
      
         @GetMapping("/{country}")
         public HttpEntity<Void> getAddressesForCountry(@PathVariable String country) { ... }
      
         @PostMapping
         public void addAddress(Address address) { ... }
       }
       
      UriComponentsBuilder を作成できます。
       // Inline style with static import of "MvcUriComponentsBuilder.on"
      
       MvcUriComponentsBuilder.fromMethodCall(
                      on(AddressController.class).getAddressesForCountry("US")).buildAndExpand(1);
      
       // Longer form useful for repeated invocation (and void controller methods)
      
       AddressController controller = MvcUriComponentsBuilder.on(AddressController.class);
       controller.addAddress(null);
       builder = MvcUriComponentsBuilder.fromMethodCall(controller);
       controller.getAddressesForCountry("US")
       builder = MvcUriComponentsBuilder.fromMethodCall(controller);
       

      注意 : このメソッドは、"Forwarded" および "X-Forwarded-*" ヘッダーから値が見つかった場合に抽出します。クラスレベルのドキュメントを参照してください。

      パラメーター:
      info - 「モック」コントローラー呼び出しから返された値、または呼び出し後の「モック」コントローラー自体
      戻り値:
      UriComponents インスタンス
      関連事項:
    • fromMethodCall

      public static UriComponentsBuilder fromMethodCall(UriComponentsBuilder builder, ObjectSE info)
      ベース URL を表す UriComponentsBuilder を受け入れる fromMethodCall(Object) の代替。これは、リクエストを処理するコンテキスト外で MvcUriComponentsBuilder を使用する場合、または現在のリクエストと一致しないカスタム baseUrl を適用する場合に便利です。

      注意 : このメソッドは、"Forwarded" および "X-Forwarded-*" ヘッダーから値が見つかった場合に抽出します。クラスレベルのドキュメントを参照してください。

      パラメーター:
      builder - ベース URL のビルダー。ビルダーは複製されるため変更されず、以降の呼び出しで再利用できます。
      info - 「モック」コントローラー呼び出しから返された値、または呼び出し後の「モック」コントローラー自体
      戻り値:
      UriComponents インスタンス
    • on

      public static <T> T on(ClassSE<T> controllerType)
      「モック」コントローラーインスタンスを返します。コントローラーで @RequestMapping メソッドが呼び出されると、指定された引数値が記憶され、その結果を使用して fromMethodCall(Object) を介して UriComponentsBuilder を作成できます。

      これは(静的インポートを使用した)インラインでの使用を目的とした controller(Class) の簡略バージョンであることに注意してください。例:

       MvcUriComponentsBuilder.fromMethodCall(on(FooController.class).getFoo(1)).build();
       

      注意 : このメソッドは、"Forwarded" および "X-Forwarded-*" ヘッダーから値が見つかった場合に抽出します。クラスレベルのドキュメントを参照してください。

      パラメーター:
      controllerType - ターゲットコントローラー
    • controller

      public static <T> T controller(ClassSE<T> controllerType)
      「モック」コントローラーインスタンスを返します。コントローラーで @RequestMapping メソッドが呼び出されると、指定された引数値が記憶され、その結果を使用して fromMethodCall(Object) を介して UriComponentsBuilder を作成できます。

      これは on(Class) のより長いバージョンです。コントローラーメソッドが void を返す場合も、呼び出しを繰り返す場合に必要です。

       FooController fooController = controller(FooController.class);
      
       fooController.saveFoo(1, null);
       builder = MvcUriComponentsBuilder.fromMethodCall(fooController);
      
       fooController.saveFoo(2, null);
       builder = MvcUriComponentsBuilder.fromMethodCall(fooController);
       

      注意 : このメソッドは、"Forwarded" および "X-Forwarded-*" ヘッダーから値が見つかった場合に抽出します。クラスレベルのドキュメントを参照してください。

      パラメーター:
      controllerType - ターゲットコントローラー
    • fromMappingName

      public static MvcUriComponentsBuilder.MethodArgumentBuilder fromMappingName(StringSE mappingName)
      Spring MVC コントローラーメソッドのリクエストマッピングの名前から URL を作成します。

      構成された HandlerMethodMappingNamingStrategy は、始動時にコントローラーメソッドリクエストマッピングの名前を判別します。デフォルトでは、すべてのマッピングには、クラス名の大文字に基づいた名前が割り当てられ、その後に区切り文字として "#" が続き、次にメソッド名が続きます。たとえば、メソッド getPerson を持つ PersonController という名前のクラスの "PC#getPerson"。命名規則で一意の結果が得られない場合は、@RequestMapping アノテーションの name 属性を介して明示的な名前を割り当てることができます。

      これは主に、ビューレンダリングテクノロジと EL 式で使用することを目的としています。Spring URL タグライブラリは、このメソッドを "mvcUrl" と呼ばれる関数として登録します。

      例: このコントローラーを指定:

       @RequestMapping("/people")
       class PersonController {
      
         @RequestMapping("/{id}")
         public HttpEntity<Void> getPerson(@PathVariable String id) { ... }
      
       }
       
      JSP は、次のようにコントローラーメソッドへの URL を準備できます。
       <%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
      
       <a href="${s:mvcUrl('PC#getPerson').arg(0,"123").build()}">Get Person</a>
       

      すべての引数を指定する必要はないことに注意してください。URL の準備に必要なもの、主に @RequestParam と @PathVariable)のみ。

      注意 : このメソッドは、"Forwarded" および "X-Forwarded-*" ヘッダーから値が見つかった場合に抽出します。クラスレベルのドキュメントを参照してください。

      パラメーター:
      mappingName - マッピング名
      戻り値:
      URI 文字列を準備するビルダー
      例外:
      IllegalArgumentExceptionSE - マッピング名が見つからない場合、または一意に一致しない場合
      導入:
      4.1
    • fromMappingName

      ベース URL を表す UriComponentsBuilder を受け入れる fromMappingName(String) の代替。これは、リクエストを処理するコンテキスト外で MvcUriComponentsBuilder を使用する場合、または現在のリクエストと一致しないカスタム baseUrl を適用する場合に便利です。

      注意 : このメソッドは、"Forwarded" および "X-Forwarded-*" ヘッダーから値が見つかった場合に抽出します。クラスレベルのドキュメントを参照してください。

      パラメーター:
      builder - ベース URL のビルダー。ビルダーは複製されるため変更されず、以降の呼び出しで再利用できます。
      name - マッピング名
      戻り値:
      URI 文字列を準備するビルダー
      例外:
      IllegalArgumentExceptionSE - マッピング名が見つからない場合、または一意に一致しない場合
      導入:
      4.2
    • withController

      public UriComponentsBuilder withController(ClassSE<?> controllerType)
      relativeTo(org.springframework.web.util.UriComponentsBuilder) の呼び出しを介して作成されたこのクラスのインスタンスで使用する fromController(Class) の代替。

      注意 : このメソッドは、"Forwarded" および "X-Forwarded-*" ヘッダーから値が見つかった場合に抽出します。クラスレベルのドキュメントを参照してください。

      導入:
      4.2
    • withMethodName

      public UriComponentsBuilder withMethodName(ClassSE<?> controllerType, StringSE methodName, ObjectSE... args)
      relativeTo(org.springframework.web.util.UriComponentsBuilder) を介して作成されたこのクラスのインスタンスで使用するための fromMethodName(Class, String, Object...)} の代替。

      注意 : このメソッドは、"Forwarded" および "X-Forwarded-*" ヘッダーから値が見つかった場合に抽出します。クラスレベルのドキュメントを参照してください。

      導入:
      4.2
    • withMethodCall

      public UriComponentsBuilder withMethodCall(ObjectSE invocationInfo)
      relativeTo(org.springframework.web.util.UriComponentsBuilder) を介して作成されたこのクラスのインスタンスで使用する fromMethodCall(Object) の代替。

      注意 : このメソッドは、"Forwarded" および "X-Forwarded-*" ヘッダーから値が見つかった場合に抽出します。クラスレベルのドキュメントを参照してください。

      導入:
      4.2
    • withMappingName

      public MvcUriComponentsBuilder.MethodArgumentBuilder withMappingName(StringSE mappingName)
      relativeTo(org.springframework.web.util.UriComponentsBuilder) を介して作成されたこのクラスのインスタンスで使用する fromMappingName(String) の代替。

      注意 : このメソッドは、"Forwarded" および "X-Forwarded-*" ヘッダーから値が見つかった場合に抽出します。クラスレベルのドキュメントを参照してください。

      導入:
      4.2
    • withMethod

      public UriComponentsBuilder withMethod(ClassSE<?> controllerType, MethodSE method, ObjectSE... args)
      relativeTo(org.springframework.web.util.UriComponentsBuilder) を介して作成されたこのクラスのインスタンスで使用する fromMethod(Class, Method, Object...) の代替。

      注意 : このメソッドは、"Forwarded" および "X-Forwarded-*" ヘッダーから値が見つかった場合に抽出します。クラスレベルのドキュメントを参照してください。

      導入:
      4.2