GWT真实世界令牌使用

时间:2011-05-12 14:40:32

标签: url gwt mvp token

所以看起来像使用GWT活动&地方,总是需要一个标记。我的问题是,您为一个通常不会有任何其他参数的页面提供什么标记,例如联系我们页面或地点。目前它看起来像/#ContactUsPlace:附加了随机标记的标记。

其他开发者如何使用令牌。

非常感谢, 亚历

1 个答案:

答案 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