2016-02-24 56 views
0

我正在使用Activities和Places。GWT tokenizer:如何更改網址

我有一個LoginPlace。

的URL顯示,當我瀏覽到那個地方有這個底:

#LoginPlace:login 

我怎樣才能改變這只是#login或其他什麼東西?

我的分詞是這樣的:

public class LoginTokenizer implements PlaceTokenizer<LoginPlace> { 

    private LoginPlace loginPlace; 

    public LoginTokenizer() { 
    } 

    @Override 
    public LoginPlace getPlace(String token) { 
     return new LoginPlace(token); 
    } 

    @Override 
    public String getToken(LoginPlace place) { 
     loginPlace = place; 
     return loginPlace.getLoginToken(); 
    } 
} 

和導航到LoginPlace通過PlaceController完成:

clientFactory.getPlaceController().goTo(new LoginPlace("login")); 

我在哪裏可以操縱URL的格式?

回答

0
  1. 重命名將類從LoginPlaceLogin

  2. 傳遞空令牌:

    new LoginPlace("") 
    
+0

嘿!奇怪的是,我不得不改變我班的名字。你確定這是唯一的方法嗎? – user3629892

+0

正如Thomas指出的那樣,您可以使用@Prefix註釋,但更改類名是最簡單的方法。我更喜歡這個選項,因爲它更易於維護和理解,特別是在具有許多不同位置的大型應用程序中。 –

1

的映射由PlaceHistoryMapper完成。

您可以使用由GWT生成的基於PlaceTokenizer的實現,但它基於前綴/後綴。 @Prefix允許您配置前綴(否則默認爲place類的名稱)。

或者你也可以自己實現接口並完全控制過程。