2015-05-29 5 views
1

Я пытаюсь отправить один url, который я сгенерирую на основе некоторого динамического значения. Но я не хочу его жестко кодировать и не хочу использовать объект ответа или запроса.Как построить динамический url весной mvc

Пример: - http://localhost:8585/app/image/ {ID}/{publicUrl}/{имя файла}

Так что я хочу, чтобы получить первую часть т.е. http://localhost:8585/app/image/ от только Spring Framework. Я буду предоставлять остальную часть вещей, таких как id, publicUrl, filename, чтобы он мог генерировать полный абсолютный URL-адрес.

Как это сделать весной MVC.

Я использую пружину MVC, весна Данные, весенний отдых, спящий режим.

ответ

4

Вы пытаетесь прослушивать URL-адрес или пытаться создать URL-адрес для использования извне?

Если последнее, вы можете использовать URIComponentsBuilder для создания динамических URL-адресов весной. Пример:

UriCompoents uri = UriComponentsBuilder 
        .fromHttpUrl("http://localhost:8585/app/image/{id}/{publicUrl}/{filename}") 
        .buildAndExpand("someId", "somePublicUrl", "someFilename"); 

String urlString = components.toUriString(); 
+1

Нет моей проблемы в том, что я не хочу жестко кодировать «http: // localhost: 8585/app /» эту часть. Теперь я запускаю свое приложение локально, поэтому его показ «http: // localhost: 8585 /» и приложение - это имя приложения. Что делать, если я загрузил это приложение, чтобы сказать www.example.com, и я хочу получить к нему доступ с помощью example.com. Поэтому я хочу предоставить «/ image/{id}/{publicUrl}/{filename}" часть, и отдых позаботится к весне. –

0

Просто дополнение к Neil Макгиган-х 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 

Надеюсь, это поможет.

Смежные вопросы