Мне нужно получить URL с текущей веб-страницы, открытой в Firefox, с помощью Wicket.Может кто-нибудь сказать мне, как это сделать?
Вам необходимо запросить базовый HTTPServletRequest :
public class DummyPage extends WebPage{ private String getRequestUrl(){ // this is a wicket-specific request interface final Request request = getRequest(); if(request instanceof WebRequest){ final WebRequest wr = (WebRequest) request; // but this is the real thing final HttpServletRequest hsr = wr.getHttpServletRequest(); String reqUrl = hsr.getRequestURL().toString(); final String queryString = hsr.getQueryString(); if(queryString != null){ reqUrl += "?" + queryString; } return reqUrl; } return null; } }
Ссылка:
Чтобы получить URL текущей страницы, используйте веб-запрос и UrlRenderer:
Url url = ((WebRequest)RequestCycle.get().getRequest()).getUrl(); String fullUrl = RequestCycle.get().getUrlRenderer().renderFullUrl(url);
Решение от Шона Патрика Флойда устарело для калитки 1.5
Если вы используете калитку 1.5 (или выше, я думаю), вот решение:
RequestCycle.get().getUrlRenderer().renderFullUrl( Url.parse(urlFor(MyPage.class,null).toString()));
Ссылка
Получение URL для отображения
Это работает. Я использую калитку 1.5;
новый URL (RequestCycle.get (). GetUrlRenderer (). RenderFullUrl ( Url.parse (urlFor (HomePage.class, нуль) .ToString ()))) getAuthority () ; *. * 1005
Пример: http://example.com:80/a_long_path/
getAuthproty () вернет example.com:80
getHost () вернет example.com.
В зависимости от того, что именно вы хотите, это может быть невозможно.В вики Wicket есть краткое руководство , но в нем есть некоторые предостережения, в частности, то, что он возвращает относительный URL только в версиях Wicket после 1.3.Тем не менее, используемый метод
String url = urlFor("pageMapName", MyPage.class, new PageParameters("foo=bar"));
Если вы используете альтернативный метод вики - тот, который использует форму - будьте предупреждены: getPage() это не является частью открытого API Wicket .
getPage()