所以看起来像使用GWT活动&地方,总是需要一个标记。我的问题是,您为一个通常不会有任何其他参数的页面提供什么标记,例如联系我们页面或地点。目前它看起来像/#ContactUsPlace:附加了随机标记的标记。
其他开发者如何使用令牌。
非常感谢, 亚历
答案 0 :(得分:1)
好吧,你可以返回空令牌,这会将url更改为/#ContactUsPlace: 您也可以使用@Prefix注释更改前缀以获取前缀。 /#联系我们:
如果你想要更多的控制,那么你可以实现自己的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,它为您提供与PlaceTokenizers相同的功能。
一些文档:http://code.google.com/webtoolkit/doc/latest/DevGuideMvpActivitiesAndPlaces.html#PlaceHistoryMapper