Разложение URL с помощью Wicket - PullRequest
1 голос
/ 25 октября 2011

Как я могу разложить URL в Wicket?У меня есть следующий URL:

http://www.example.com[:8080]/context/wicket/[bookmarkable/]WICKET-RELATED-URL
|---------------------------|-------|----------------------------------------|
              A                 B                       C

Я нашел способ получить полный URL (A, B, C):

RequestCycle.get().getUrlRenderer().renderFullUrl(
  RequestCycle.get().getRequest().getUrl())

и способ получить толькоконтекст (B):

RequestCycle.get().getRequest().getContextPath()

Есть ли подобный способ получить часть (A) URL?Или я должен работать с подстрокой?

Ответы [ 4 ]

2 голосов
/ 25 октября 2011

Не используйте регулярные выражения! ;)

Существует java.net.URL объект, который анализирует URL и позволяет получить доступ к любой его части отдельно. Кроме того, вы можете объединить новый URL из частей и составить обратно строковую форму URL.

Зависит от того, что именно вы хотите в калитке, может быть, есть готовый метод, чтобы сделать это с калиткой. Вы не рассказали о своей проблеме, а только о вероятном решении.

0 голосов
/ 26 октября 2011
RequestCycle.get().getRequest().getUrl().get(Protocol|Host|Port)()
0 голосов
/ 26 октября 2011

Вы можете использовать калитки RequestUtil.toAbsolutePath(String relativePagePath).

Согласно JavaDoc, он "вычисляет абсолютный путь к URL относительно другого абсолютного URL."

Я использовал его с 'urlFor() 'для создания ссылок для размещения в письмах, но если вы можете определить относительный путь к вашей цели, это должно быть вашим решением.

0 голосов
/ 25 октября 2011

Регулярные выражения могут соответствовать вашим требованиям

...