動的な値に基づいて生成する1つのURLを送信しようとしています。しかし、ハードコーディングしたり、応答オブジェクトや要求オブジェクトを使用したりしたくありません。
例:
http:// localhost:8585/app/image / {id}/{publicUrl}/{filename}
したがって、Spring Frameworkからのみ最初の部分(つまり http:// localhost:8585/app/image )を取得したいと思います。 id
、publicUrl
、filename
などの残りの部分を提供して、完全なabsoluteURL。
Spring MVCでそれを行う方法は?
URLをリッスンしようとしていますか、それとも外部で使用するURLを作成しようとしていますか?
後者の場合、 RIComponentsBuilder を使用してSpringで動的URLを作成できます。例:
UriComponents uri = UriComponentsBuilder
.fromHttpUrl("http://localhost:8585/app/image/{id}/{publicUrl}/{filename}")
.buildAndExpand("someId", "somePublicUrl", "someFilename");
String urlString = uri.toUriString();
Neil McGuiganの answer に追加しただけですが、スキーマ、ドメイン、ポートなどをハードコーディングしていません...
これを行うことができます:
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
...
ServletUriComponentsBuilder.fromCurrentRequest.queryParam("page", 1).toUriString();
元のリクエストが
https://myapp.mydomain.com/api/resources
このコードは次のURLを生成します
https://myapp.mydomain.com/api/resources?page=1
お役に立てれば。