GWT窗口重定向问题

时间:2011-08-24 05:14:50

标签: gwt

您好我的gwt应用程序中有此代码,其目的是按如下方式转换为URL:

public void goToSignUpPage(boolean isDeployed) {
    String url = (isDeployed == true ? "signup.html" : "signup.html?gwt.codesvr=127.0.0.1:9997");
    Window.Location.replace(url);

然而,它会重定向到此网址:

http://127.0.0.1:8888/mygwtapp/signup.html?gwt.codesvr=127.0.0.1:9997

工作网址为:

http://127.0.0.1:8888/signup.html?gwt.codesvr=127.0.0.1:9997

BTW,mygwtapp是MyGwtApp.gwt.xml中定义的gwt模块

<module rename-to='mygwtapp'>

为什么URL被gwt模块名称附加的想法?有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您只需添加GWT.getHostPageBaseURL()即可获取Web应用程序的完整网址,而不会附加到模块名称。

试试这个:

public void goToSignUpPage() {
    String url = GWT.getHostPageBaseURL() + "signup.html";

    if(!GWT.isProdMode()) {
        Window.alert("We are in development mode!");
        url += "?gwt.codesvr=127.0.0.1:9997";
    }

    Window.Location.replace(url);
}

我还删除了参数“isDeployed”,并将其替换为方法中的GWT.isProdMode(),以检查您是否处于生产或开发模式。

用一个参数:

public void goToSignUpPage(Boolean isDeployed) {

    String url = GWT.getHostPageBaseURL() + "signup.html";

    if(!isDeployed) {
        url += "?gwt.codesvr=127.0.0.1:9997";
    }

    Window.Location.replace(url);
}

希望这有帮助!