2011-08-17 29 views
2

我與我使用了這些代碼的html頁面之間切換的GWT多頁的項目工作,對於這種情況下,從切換到的index.html頁signup.html中更改網址:如何GWT應用

public static native void fireChangePage(String url)/*-{ 
     $wnd.location.href = url; 
}-*/; 

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

從EntryPoint爲index.html調用fireChangePage時,我收到錯誤404。 手動更改瀏覽器的URL說:index.html?gwt.codesvr = 127.0.0.1:9997 signup.html?gwt.codesvr = 127.0.0.1:9997的作品,所以我可以說,問題是與本機功能fireChangePage

原生函數有什麼問題?或者有沒有比這更好的方法?

回答

2

如果是GWT項目,您應該在各個位置之間切換(使用PlaceController),而不是在HTML頁面之間切換。無論如何,如果你必須這樣做,我建議使用com.google.gwt.user.client.Window.Location類代替(它是由框架提供的,工作正常)。

+0

我確實使用了Window.Location.replace(url),但它也返回了錯誤404。實際上,對我的作品是用戶HTML對象,並將鏈接與工作,但使用這種方法創建了一個「超鏈接」(藍色的顏色),這與我的gwt應用程序看起來並不一樣。 – xybrek

+0

因此,當位置被改變(通過Window.Location),並且您在瀏覽器中看到404錯誤代碼時,當您點擊「enter」(請求瀏覽器再試一次)時,也會出現404錯誤? (你說如果你手動指定它,你可以看到正確的頁面 - 所以當你點擊enter時,就和手動指定它一樣)。我很確定這是你的URL的東西 - 我已經多次使用Window.Location,並且它的每一個工作都很好。 –

0

嘗試向文檔的路徑添加斜槓,即/signup.html