2013-01-07 105 views
1

我真的不明白PlaceTokenizer正在做什麼? 他是否將地點的類名轉換爲字符串,以便gwt歷史機制可以使用它將其放入瀏覽器url?多數民衆贊成在我所知道但我不知道這是否正確。gwt PlaceTokenizer實際上做了什麼?

+0

的https: //developers.google.com/web-toolkit/doc/latest/DevGuideMvpActivitiesAndPlaces#Places和T Broyers解釋此處 - https://groups.google.com/forum/?fromgroups=#!topic/google-web-toolkit/ tSaVtGvrVH0 – SSR

回答

4

首先,PlaceTokenizer僅在結合使用的發電機PlaceHistoryMapper(如果你GWT.create()擴展PlaceHistoryMapper的接口,即,你是自由的,而不是實現該接口在具體的類,如果你喜歡)。生成器強制歷史記號標記(URL中的#之後的部分)由前綴和地方標記組成。前綴用於與給定的PlaceTokenizer類型匹配,並且由標記器上的@Prefix標註給出,或者它默認爲由標記器處理的位置的簡單名稱。

解析當歷史令牌(當handleCurrentHistory()被稱爲在初始化時,或當您瀏覽使用瀏覽器的歷史),之後前綴已被匹配到PlaceTokenizer和標記生成器的實例被檢索(從工廠如果使用PlaceHistoryMapperWithFactory或使用其默認的零參數構造函數創建),則位置令牌被傳遞給getPlace方法,並且令牌生成器預期實例化與位置令牌對應的位置。

當序列化的地方(當通過PlaceController#goTo(Place)在應用中導航),一個標記生成器是基於所述地點(針對標記生成器的通用參數匹配的)的類型檢索和地點被給予getToken,這是預計將返回一個地方代幣的地方。然後PlaceHistoryHandler將預先添加前綴並更新URL。

地方令牌可以是任何東西,而是基於由地方(其字段)包含的數據,而不是它的類型(這是反映作爲歷史令牌的前綴)

+0

謝謝!你的回答非常有幫助。 – nomnom

相關問題