gwt PlaceTokenizer实际做什么?

Per*_*ero 1 java gwt

我真的不明白PlaceTokenizer在做什么?他是否将场所的类名称转换为字符串,以便gwt历史记录机制可以使用它将其放入浏览器的url中?多数民众赞成在我的理解,但我不确定这是否是正确的。

Tho*_*yer 5

首先,PlaceTokenizer仅与生成器结合使用PlaceHistoryMapper(例如,如果您GWT.create()扩展了一个接口PlaceHistoryMapper;则可以根据需要随意在具体的类中实现该接口)。生成器强制将历史标记#URL中位于的部分)由前缀和place标记组成。该前缀用于与给定PlaceTokenizer类型匹配,并且可以由@Prefix令牌生成器上的注释指定,或者默认为令牌生成器处理的场所的简单名称。

解析历史令牌handleCurrentHistory()(在初始化时调用,或使用浏览器的历史记录进行导航时),在将前缀与匹配PlaceTokenizer并且检索到该令牌生成器的实例之后(如果使用PlaceHistoryMapperWithFactory或从工厂创建,则从工厂获取)使用其默认的零参数构造函数),将位置标记传递给该getPlace方法,并且令牌生成器应实例化一个与位置标记对应的位置

序列化地点时(当您PlaceController#goTo(Place)在应用中导航时),将根据地点的类型(与tokenizer的通用参数匹配)检索令牌生成器,并将该地点提供给getToken,该令牌应返回位置令牌为这个地方。然后,PlaceHistoryHandler它将在前缀之前并更新URL。

地方令牌可以是任何东西,而是基于由地方(其字段)包含的数据,而不是它的类型(这是反映作为前缀历史令牌