2011-08-24 56 views
1

您好我有我的GWT應用此代碼的目的是恰克到網址如下:GWT窗口重定向問題

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

<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()代替它來檢查,如果你在生產或開發模式下。

隨着paramater:

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

希望這有助於!

+1

謝謝,它現在有效。然而,我的代碼不能用戶GWT.isProdMode(),因爲它是未解決的錯誤,我不知道我的GWT應用程序是基於GWT 2.0.3 – xybrek

+1

啊,這很奇怪。我不太確定他們何時推出這種方法。我爲其他可能查看問題的人更新了答案。 –

+1

其實我只是用GWT.isScript()代替了GWT.isProdMode() – xybrek