クラス MvcUriComponentsBuilder
@RequestMapping
メソッドを指すことにより、UriComponentsBuilder
のインスタンスを作成します。メソッドにはいくつかのグループがあります。
ServletUriComponentsBuilder.fromCurrentServletMapping()
の呼び出しによって決定された現在のリクエストからの情報を使用してリンクを準備する静的fromXxx(...)
メソッド。- 静的
fromXxx(UriComponentsBuilder,...)
メソッドは、リクエストのコンテキスト外で動作する場合、baseUrl を指定できます。 relativeTo(org.springframework.web.util.UriComponentsBuilder)
を介して baseUrl を使用して MvcUriComponentsBuilder のインスタンスが作成されるインスタンスベースのwithXxx(...)
メソッド。
注意 : 5.1 以降、このクラスのメソッドは、クライアントが発信したアドレスを指定する "Forwarded"
および "X-Forwarded-*"
ヘッダーを抽出しません。基になるサーバーから ForwardedHeaderFilter
などを使用して、そのようなヘッダーを抽出して使用するか、破棄してください。
- 導入:
- 4.0
- 作成者:
- Oliver Gierke, Rossen Stoyanchev, Sam Brannen, Juergen Hoeller
ネストされたクラスのサマリー
ネストされたクラス修飾子と型クラス説明static class
メソッド引数の URL を作成するビルダークラス。static interface
メソッド呼び出し情報。フィールドのサマリー
フィールドコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明static <T> T
controller
(ClassSE<T> controllerType) 「モック」コントローラーインスタンスを返します。static UriComponentsBuilder
fromController
(ClassSE<?> controllerType) コントローラークラスのマッピングとサーブレットマッピングを含む現在のリクエスト情報からUriComponentsBuilder
を作成します。static UriComponentsBuilder
fromController
(UriComponentsBuilder builder, ClassSE<?> controllerType) ベース URL を表すUriComponentsBuilder
を受け入れるfromController(Class)
の代替。fromMappingName
(StringSE mappingName) Spring MVC コントローラーメソッドのリクエストマッピングの名前から URL を作成します。fromMappingName
(UriComponentsBuilder builder, StringSE name) ベース URL を表すUriComponentsBuilder
を受け入れるfromMappingName(String)
の代替。static UriComponentsBuilder
fromMethod
(ClassSE<?> controllerType, MethodSE method, ObjectSE... args) コントローラーメソッドとメソッド引数値の配列のマッピングからUriComponentsBuilder
を作成します。static UriComponentsBuilder
fromMethod
(UriComponentsBuilder baseUrl, ClassSE<?> controllerType, MethodSE method, ObjectSE... args) ベース URL を表すUriComponentsBuilder
を受け入れるfromMethod(Class, Method, Object...)
の代替。static UriComponentsBuilder
fromMethodCall
(ObjectSE info) 「モック」コントローラーメソッドを呼び出して、UriComponentsBuilder
を作成します。static UriComponentsBuilder
fromMethodCall
(UriComponentsBuilder builder, ObjectSE info) ベース URL を表すUriComponentsBuilder
を受け入れるfromMethodCall(Object)
の代替。static UriComponentsBuilder
fromMethodName
(ClassSE<?> controllerType, StringSE methodName, ObjectSE... args) コントローラーメソッドとメソッド引数値の配列のマッピングからUriComponentsBuilder
を作成します。static UriComponentsBuilder
fromMethodName
(UriComponentsBuilder builder, ClassSE<?> controllerType, StringSE methodName, ObjectSE... args) ベース URL を表すUriComponentsBuilder
を受け入れるfromMethodName(Class, String, Object...)
の代替。static <T> T
「モック」コントローラーインスタンスを返します。static MvcUriComponentsBuilder
relativeTo
(UriComponentsBuilder baseUrl) ベース URL を使用して、このクラスのインスタンスを作成します。withController
(ClassSE<?> controllerType) relativeTo(org.springframework.web.util.UriComponentsBuilder)
の呼び出しを介して作成されたこのクラスのインスタンスで使用するfromController(Class)
の代替。withMappingName
(StringSE mappingName) relativeTo(org.springframework.web.util.UriComponentsBuilder)
を介して作成されたこのクラスのインスタンスで使用するfromMappingName(String)
の代替。withMethod
(ClassSE<?> controllerType, MethodSE method, ObjectSE... args) relativeTo(org.springframework.web.util.UriComponentsBuilder)
を介して作成されたこのクラスのインスタンスで使用するfromMethod(Class, Method, Object...)
の代替。withMethodCall
(ObjectSE invocationInfo) relativeTo(org.springframework.web.util.UriComponentsBuilder)
を介して作成されたこのクラスのインスタンスで使用するfromMethodCall(Object)
の代替。withMethodName
(ClassSE<?> controllerType, StringSE methodName, ObjectSE... args) relativeTo(org.springframework.web.util.UriComponentsBuilder)
を介して作成されたこのクラスのインスタンスで使用するfromMethodName(Class, String, Object...)
の代替。
フィールドの詳細
MVC_URI_COMPONENTS_CONTRIBUTOR_BEAN_NAME
Bean ファクトリ内のCompositeUriComponentsContributor
オブジェクトの既知の名前。- 関連事項:
コンストラクターの詳細
MvcUriComponentsBuilder
デフォルトのコンストラクター。直接インスタンス化を防ぐために保護されています。
メソッドの詳細
relativeTo
ベース URL を指定してこのクラスのインスタンスを作成します。その後、インスタンスベースのwithXxx(...)
メソッドのいずれかを呼び出すと、指定されたベース URL を基準とした相対 URL が作成されます。fromController
コントローラークラスのマッピングとサーブレットマッピングを含む現在のリクエスト情報からUriComponentsBuilder
を作成します。コントローラーに複数のマッピングが含まれている場合、最初のマッピングのみが使用されます。- パラメーター:
controllerType
- URI を構築するコントローラー- 戻り値:
- UriComponentsBuilder インスタンス (非
null
)
fromController
public static UriComponentsBuilder fromController(@Nullable UriComponentsBuilder builder, ClassSE<?> controllerType) ベース URL を表すUriComponentsBuilder
を受け入れるfromController(Class)
の代替手段です。これは、リクエストの処理のコンテキスト外で MvcUriComponentsBuilder を使用する場合や、現在のリクエストに一致しないカスタム baseUrl を適用する場合に便利です。- パラメーター:
builder
- ベース URL のビルダー。ビルダーは複製されるため変更されず、以降の呼び出しで再利用できます。controllerType
- URI を構築するコントローラー- 戻り値:
- UriComponentsBuilder インスタンス (非
null
)
fromMethodName
public static UriComponentsBuilder fromMethodName(ClassSE<?> controllerType, StringSE methodName, ObjectSE... args) コントローラーメソッドとメソッド引数値の配列のマッピングからUriComponentsBuilder
を作成します。このメソッドはfromMethod(Class, Method, Object...)
に委譲します。- パラメーター:
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 を適用する場合に便利です。- パラメーター:
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
にすることができます。- パラメーター:
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 を適用する場合に便利です。- パラメーター:
baseUrl
- ベース URL のビルダー。ビルダーは複製されるため変更されず、以降の呼び出しで再利用できます。controllerType
- コントローラーの型method
- コントローラーメソッドargs
- コントローラーメソッドの引数値- 戻り値:
- UriComponentsBuilder インスタンス (非
null
) - 導入:
- 4.2
fromMethodCall
「モック」コントローラーメソッドを呼び出して、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);
- パラメーター:
info
- 「モック」コントローラー呼び出しから返された値、または呼び出し後の「モック」コントローラー自体- 戻り値:
- UriComponents インスタンス
- 関連事項:
fromMethodCall
ベース URL を表すUriComponentsBuilder
を受け入れるfromMethodCall(Object)
の代替手段です。これは、リクエストの処理のコンテキスト外で MvcUriComponentsBuilder を使用する場合や、現在のリクエストに一致しないカスタム baseUrl を適用する場合に便利です。- パラメーター:
builder
- ベース URL のビルダー。ビルダーは複製されるため変更されず、以降の呼び出しで再利用できます。info
- 「モック」コントローラー呼び出しから返された値、または呼び出し後の「モック」コントローラー自体- 戻り値:
- UriComponents インスタンス
on
「モック」コントローラーインスタンスを返します。コントローラーで@RequestMapping
メソッドが呼び出されると、指定された引数値が記憶され、その結果を使用してfromMethodCall(Object)
を介してUriComponentsBuilder
を作成できます。これは(静的インポートを使用した)インラインでの使用を目的とした
controller(Class)
の簡略バージョンであることに注意してください。例:MvcUriComponentsBuilder.fromMethodCall(on(FooController.class).getFoo(1)).build();
- パラメーター:
controllerType
- ターゲットコントローラー
controller
「モック」コントローラーインスタンスを返します。コントローラーで@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);
- パラメーター:
controllerType
- ターゲットコントローラー
fromMappingName
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
)のみ。- パラメーター:
mappingName
- マッピング名- 戻り値:
- URI 文字列を準備するビルダー
- 例外:
IllegalArgumentExceptionSE
- マッピング名が見つからない場合、または一意に一致しない場合- 導入:
- 4.1
fromMappingName
public static MvcUriComponentsBuilder.MethodArgumentBuilder fromMappingName(@Nullable UriComponentsBuilder builder, StringSE name) ベース URL を表すUriComponentsBuilder
を受け入れるfromMappingName(String)
の代替手段です。これは、リクエストの処理のコンテキスト外で MvcUriComponentsBuilder を使用する場合や、現在のリクエストに一致しないカスタム baseUrl を適用する場合に便利です。- パラメーター:
builder
- ベース URL のビルダー。ビルダーは複製されるため変更されず、以降の呼び出しで再利用できます。name
- マッピング名- 戻り値:
- URI 文字列を準備するビルダー
- 例外:
IllegalArgumentExceptionSE
- マッピング名が見つからない場合、または一意に一致しない場合- 導入:
- 4.2
withController
relativeTo(org.springframework.web.util.UriComponentsBuilder)
の呼び出しを介して作成されたこのクラスのインスタンスで使用するfromController(Class)
の代替。- 導入:
- 4.2
withMethodName
public UriComponentsBuilder withMethodName(ClassSE<?> controllerType, StringSE methodName, ObjectSE... args) relativeTo(org.springframework.web.util.UriComponentsBuilder)
を介して作成されたこのクラスのインスタンスで使用するfromMethodName(Class, String, Object...)
の代替。- 導入:
- 4.2
withMethodCall
relativeTo(org.springframework.web.util.UriComponentsBuilder)
を介して作成されたこのクラスのインスタンスで使用するfromMethodCall(Object)
の代替。- 導入:
- 4.2
withMappingName
relativeTo(org.springframework.web.util.UriComponentsBuilder)
を介して作成されたこのクラスのインスタンスで使用するfromMappingName(String)
の代替。- 導入:
- 4.2
withMethod
public UriComponentsBuilder withMethod(ClassSE<?> controllerType, MethodSE method, ObjectSE... args) relativeTo(org.springframework.web.util.UriComponentsBuilder)
を介して作成されたこのクラスのインスタンスで使用するfromMethod(Class, Method, Object...)
の代替。- 導入:
- 4.2