java.net替换java.net.URL

Edu*_*rch 15 url gwt

我必须替换GWT中现有url的协议部分.该java.net软件包有一个专门为此目的构建的类:URL.遗憾的是,GWT 不会模拟java.net包.

如何在不创建自己的解析器的情况下在GWT中重新组合URL?(我知道UrlBuilder,但UrlBuilder不会使用现有的URL)

示例:我在字符串" http://myserver.com/somepath/file.html?param "中有一个url,我想用"https"替换协议部分.

z00*_*0bs 6

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);
}
Run Code Online (Sandbox Code Playgroud)


Bla*_*son 6

这很难看,但你总是可以创建一个锚元素并从那里提取零件.

AnchorElement a = Document.get().createAnchorElement();
a.setHref("http://test.com/somerandompath");
Window.alert(a.getPropertyString("protocol") + " " + a.getPropertyString("host")) + " " a.getPropertyString("pathname"));

a.removeFromParent();
Run Code Online (Sandbox Code Playgroud)


Mar*_*ten 0

Window.Location对您有帮助吗?您可以在那里读出 URL,对其进行修改然后.assign()返回。