2011-06-24 3 views
1

私はGWTを初めて使っていますので、これは間違った質問かもしれませんが、どこにでも良い答えが見つかりませんでした。GWTプレイスオブジェクト

GWTでプレイスオブジェクトを作成するにはどうすればよいですか? ClientFactoryでファイナルとして作成して、どこにでも再利用する必要がありますか? Eclipseが生成するPlaceオブジェクトは、文字列トークンをパラメータとして使用します。

私の理解は次のとおりです。静的でどこにでもそれらを再利用するページのために、ValueChangeHandlerに最終的なPlaceオブジェクトを作成する必要があります。比較的ダイナミックであるこれらの「プレイスのは

new MyCoolPlace("MyCoolPlace" + someRandomNumber) 

のように作成する必要がありますが、それは一種のダム乱数私は新しいページに移動する必要があるたびに使用していないのですか?数時間前に作成したオブジェクトの履歴もクリアされますか?

現在、私はこのメカニズムの仕組みを理解する上で問題があります。 私はフォームを持っています。 DBに野菜を追加するには 1.ユーザーは を入力してください。 を送信してください。3.ありがとうございますページ 4.メニューのリンクをクリックして新しい野菜を追加してください 5.フォームに移動します以前に入力したユーザーの値が既に入力されています。

手順5でフォームをクリーンにする必要があります。ただし、ユーザーが手順3でブラウザの戻るボタンをクリックした場合は、あらかじめ入力しておきます。最終に関する

答えて

3

質問:

私はそうは思いません。それらは軽量のオブジェクトであり、場所に値を持つことができます。彼らは場所の値の限定されたセットではありません(あなたがそれらをパラメータ化するならば)。フォームの値について

質問:

ヨーヨーが戻って(あなたのURLトークンがシンプルvegFormあるので、それはだ)さんは、「vegFormは、」あなたはクリーンなビューを取得say- -LEtするとき、通常の動作です。あなたは初期化せずに再利用していると思います。あなたのプレゼンター(またはUIロジックを持つもの)は、ビューを取得し、 "reset()" "init()"などを呼び出す必要があります。

戻ったときに値を保持したい場合は、それらの値を場所オブジェクトに保存する必要があります。フィールド値です。また、PlaceTokenizer(URLとPlaceオブジェクトの間で変換するオブジェクト)がそれらを処理する必要があります。例:vegForm/potato,green,...(標準表記は覚えていない)

問題は、[保存]をクリックする前に入力した値をURLにどのように保存するのかです。私はどうだろう何

は、保存する前に、URLにその状態を「保存」されています

History.newItem("vegForm/potato,green,...", false); 

そして、それは、履歴スタックになります。私がFalseと答えると、GWT Historyの仕組みがそのURLに反応して、ビューを再度ロードするのを避けるべきではないということです。ユーザーがクリックすると、フォームに戻る(値付き)。ユーザーが再びクリックすると、フォームに戻る必要があります(クリーン)。例によって

User clicks add veg -> #vegForm 
User fills data and pless save 
    -> #vegForm/value1,value2 (saved in History with false argument) 
    -> #okPage 

User clicks back 
    -> #vegForm/value1,value2 (form with saved data) 
User clicks back 
    -> #vegForm (form without) 

初期

あなたは常にビューを初期化しなければならないことを考慮してください。

  • あなたは彼らと一緒に返信用
+0

おかげでフォームを埋めるために、あなたはのparamsを持っている場合は

  • (それは再利用ビューすることができます)、それをきれいにする、のparamsを持っていない場合。これは多くの助け:) –

  • +0

    ようこそ! GWTをお楽しみください! – helios

    +0

    ところで、GWTがエンコードするかどうかわからないトークンに入れた値に注意してください(そうでない場合は、手動でエンコードする必要があります)。また、あなたは長さの世話をする必要があります。あまりにも長くしないでください(私は限界が1024文字だと思いますが、わかりません)。 – helios