【问题标题】:GWT Window redirection problemGWT 窗口重定向问题
【发布时间】:2011-11-02 11:59:16
【问题描述】:

您好,我的 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);

但是会发生什么重定向到这个 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

顺便说一句,mygwtapp 是在 MyGwtApp.gwt.xml 中定义的 gwt 模块

<module rename-to='mygwtapp'>

知道为什么 URL 会附加 gwt 模块名称吗?有什么办法解决这个问题?

【问题讨论】:

    标签: gwt


    【解决方案1】:

    您只需要添加 GWT.getHostPageBaseURL() 即可获取您的 Web 应用程序的完整 URL,而无需将其附加到模块名称。

    试试这个:

    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);
    }
    

    希望这会有所帮助!

    【讨论】:

    • 谢谢,现在可以使用了。但是我的代码不能使用 GWT.isProdMode() 因为它是未解决的错误,我不确定我的 gwt 应用程序是否基于 GWT 2.0.3
    • 啊,这很奇怪。我不太确定他们何时引入了这种方法。我为可能查看该问题的其他人更新了答案。
    • 其实我只是用了 GWT.isScript() 而不是 GWT.isProdMode()
    • 啊很好 - 我完全看过了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    相关资源
    最近更新 更多