java.net替换java.net.URL

时间:2010-11-30 08:09:23

标签: url gwt

我必须替换GWT中现有url的协议部分。 java.net包有一个专门为此目的而构建的类:URL。可悲的是GWT does not emulate the java.net package

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

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

3 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分: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();

答案 2 :(得分:0)

Window.Location对你有帮助吗?你可以在那里读出URL,修改它并.assign()回来。