Замена GWT для java.net.URL
Мне нужно заменить часть протокола уже существующего url в GWT. Пакет java.net
имеет класс, который был создан именно для этой цели: URL. К сожалению GWT не эмулирует пакет java.net.
Как я могу собрать url в GWT без создания собственного анализатора? (Я знаю о UrlBuilder, но UrlBuilder не будет использовать существующий URL-адрес)
Пример: у меня есть url в строке " http://myserver.com/somepath/file.html?param", и я хочу заменить часть протокола на "https".
Ответы
Ответ 1
public void onModuleLoad() {
Button btn = new Button("change protocol");
btn.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
UrlBuilder builder = Window.Location.createUrlBuilder().setProtocol("https");
Window.Location.replace(builder.buildString());
}
});
RootPanel.get().add(btn);
}
Ответ 2
Это некрасиво, но вы всегда можете создать элемент привязки и извлечь части оттуда.
AnchorElement a = Document.get().createAnchorElement();
a.setHref("http://test.com/somerandompath");
Window.alert(a.getPropertyString("protocol") + " " + a.getPropertyString("host")) + " " a.getPropertyString("pathname"));
a.removeFromParent();
Ответ 3
Помогает ли вам Window.Location? Вы можете прочитать URL-адрес там, изменить его и .assign()
вернуть.