Ну, вы можете вернуть пустой токен, который изменит URL на / # ContactUsPlace: Также вы можете изменить префикс, используя аннотацию @Prefix, чтобы получить ex./ # contactus:
Если вы хотите больше контроля, тогда вы можете реализовать свой собственный PlaceHistoryMapper, вот простой пример:
public class KatPlaceHistoryMapper implements PlaceHistoryMapper{
private static final String CONTACT = "contact";
private static final String ABOUT_US = "aboutUs";
@Override
public Place getPlace(String hash) {
if(token == null)
return new DefaultPlace();
else if(token.equals(CONTACT))
return new ContactPlace();
else if(token.equals(ABOUT_US))
return new AboutUsPlace();
else
return null;
}
@Override
public String getToken(Place place) {
if(place instanceof DefaultPlace)
return ""
else if(place instanceof ContactPlace)
return CONTACT;
else if(place instanceof AboutUsPlace)
return ABOUT_US;
else
return null;
}
}
Токены, возвращенные / полученные вышеупомянутыми методами, на самом деле являются целым хеш-кодом.строки (не только часть после ':').На самом деле вы избавляетесь от токенов при использовании этого подхода.Написание собственного генератора, который будет генерировать этот класс во время компиляции, кажется хорошим выбором.Также не используйте PlaceHistoryMapperWithFactory, он дает вам то же, что вы получаете с PlaceTokenizer.
некоторые документы: http://code.google.com/webtoolkit/doc/latest/DevGuideMvpActivitiesAndPlaces.html#PlaceHistoryMapper