1

PlaceTokenizer が何をしているのか本当に理解できませんか? gwt履歴メカニズムがそれを使用してブラウザのURLに入れることができるように、彼は場所のクラス名を文字列に変換しますか? それは私が理解していることですが、これが正しいかどうかはわかりません。

4

1 に答える 1

5

まず、PlaceTokenizerはジェネレーター for と組み合わせてのみ使用されPlaceHistoryMapperます (つまり、GWT.create()を拡張するインターフェースの場合。必要に応じてPlaceHistoryMapper、そのインターフェースを具象クラスに自由に実装できます)。ジェネレーターは、履歴トークン( #URL の の後の部分) を接頭辞と場所のトークンで構成するように強制します。PlaceTokenizerプレフィックスは、特定のタイプと一致させるために使用され、トークナイザーの@Prefix注釈によって指定されるか、トークナイザーによって処理される場所の単純な名前にデフォルト設定されます。

履歴トークンを解析するとき(handleCurrentHistory()初期化時に が呼び出されたとき、またはブラウザーの履歴を使用して移動したとき)、プレフィックスが に一致し、PlaceTokenizerそのトークナイザーのインスタンスが取得された後 ( を使用している場合はファクトリからPlaceHistoryMapperWithFactory、または作成されたデフォルトのゼロ引数コンストラクターを使用して)、プレース トークンがメソッドに渡され、トークナイザーはプレース トークンgetPlaceに対応するプレースをインスタンス化することが期待されます。

場所をシリアル化するとき (アプリ内をナビゲートするときPlaceController#goTo(Place))、場所のタイプに基づいてトークナイザーが取得され (トークナイザーのジェネリック パラメーターと照合されます)、場所が に渡されgetTokenます場所のために。はPlaceHistoryHandlerプレフィックスを前に追加し、URL を更新します。

場所のトークンは何でもかまいませんが、そのタイプではなく、場所に含まれるデータ (フィールド) に基づいています (これは履歴トークンのプレフィックスとして反映されます) 。

于 2013-01-07T10:49:04.637 に答える