2016-02-24 4 views
0

Я использую «Действия и места».GWT tokenizer: Как изменить URL-адрес

У меня есть вход в систему.

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. Переименуйте Place класс от LoginPlace к Login.

  2. Передайте пустой маркер:

    new LoginPlace("") 
    
+0

Эй! Странно, что мне пришлось бы изменить имя моего класса. Вы уверены, что это единственный способ? – user3629892

+0

Как отметил Томас, вы можете использовать аннотацию @Prefix, но изменение имени класса - это самый простой способ сделать это. Я предпочитаю этот вариант, потому что его легче поддерживать и понимать, особенно в крупных приложениях со множеством разных мест. –

1

Отображение делается по PlaceHistoryMapper.

У вас может быть реализация, сгенерированная GWT, основанная на PlaceTokenizer s, но затем она основана на префиксе/суффиксе. @Prefix позволяет настроить префикс (который в противном случае по умолчанию соответствует имени класса места).

Или вы можете реализовать интерфейс самостоятельно и иметь полный контроль над процессом.

 Смежные вопросы

  • Нет связанных вопросов^_^