2013-05-19 19 views
0

我希望有人能幫助我解決這個問題,如何更改GWT應用程序中的URL?

當我在GWT中更改頁面時,如何更改地址欄內容? (例如:關於www.mysite.com/aboutus)

此外,如果用戶在地址欄(www.mysite.com/aboutus)輸入GWT應用程序將其轉發到Aboutus頁面?

感謝

+0

Window.setLocation(「」)不適合你嗎? – sanbhat

+0

如何在請求和導航中執行此操作? – user1560992

回答

1

你可以使用activities and places.這是一個方法來組織你的web應用程序。該應用程序將按地點,視圖和活動進行組織,視圖僅包含構建界面的代碼,而活動包含View實際執行的內容。每個地方/活動/視圖對應於一個URL。對於某些應用程序來說,這是一種組織事物的簡單方便的方法。

0

地址欄是根據你的網頁設置,所以如果你有,說:welcome.html你必須把這個腳本到它:

<script type="text/javascript" language="javascript" src="module/welcome.nocache.js"></script> 

在src attr爲指的是入門級的模塊(通過模塊這裏我的意思是:module.gwt.xml文件)

所以這個劇本是寫在GWT的Java EntryClass

代表你的「aboutus」上模塊的邏輯連接你的HTML頁面所以如果你哈瓦與此相關的模塊,一個頁面,你會發現它:

​​

所以它是一對一的:一個網頁到一個模塊

或多對一:多div標籤在一個頁面和更多的邏輯(if-else)指定任何一段代碼將匹配suitble DIV一個

0

你應該用你的小工具,導航爲這樣的..

  Anchor nameLink = new Anchor(); 
      nameLink.setText(rec.get("userSeq") + "/" + rec.get("userName")); 
      nameLink.getElement().setAttribute("style", "padding: 5px;"); 
      String url = GWT.getHostPageBaseURL() + GWT.getModuleName() + ".html"; 
      if (GWT.getHostPageBaseURL().contains("localhost") || GWT.getHostPageBaseURL().contains("127.0.0.1")) { 
       url = url + "?gwt.codesvr=127.0.0.1:9997"; 
      } 
      nameLink.getElement().setAttribute("style", "padding: 10px;"); 
      nameLink.getElement().setAttribute("href", url + "#customer"); 

而且您的控制器或演示類應該實現ValueChangeHandler和 這裏如:這個....

public final void onValueChange(final ValueChangeEvent<String> event) { 
    String token = event.getValue(); 

    if (token != null) { 
     String[] tokens = History.getToken().split(":"); 
     final String token1 = tokens[0]; 
     final String token2 = tokens.length > 1 ? tokens[1] : ""; 

    if (token1.equals("customer")) { 

       GWT.runAsync(new RunAsyncCallback() { 
        public void onFailure(final Throwable caught) { 
        } 
        public void onSuccess() { 
         CustomerAuctionView view = CustomerAuctionView.getInstance(service); 
         CustomerAuctionPresenter presenter = 
           CustomerAuctionPresenter.getInstance(service, eventBus, view); 
         presenter.run(); 
        } 
       }); 
      } 

}

0

您也可以與

newPageButton.addClickHandler(new ClickHandler() { public void onClick(final ClickEvent event) { History.newItem("customer"); } });

0

通過嘗試JSNI,你可以找到URL

public static native String getURL() 
    /*-{ 

var x = "URL: " + location.href; 
alert(x); 


    }-*/; 
+0

這是否解決了「我在GWT中更改頁面時如何更改地址欄內容」這個問題?請注意您回答的問題。我已經格式化了你的代碼,以便其他人可以看到你的建議。您需要用4個空格縮進源代碼,否則Stackoverflow不會將其識別爲源代碼。 –

相關問題