0

GWT アプリ エンジンを使用して、アプリケーションをローカル ホストにデプロイしています。ユーザーが登録を完了して「送信」ボタンをクリックしたときに2番目のページにリダイレクトしたい場合、ブラウザは登録の詳細を含むプロファイルページに自動的にリダイレクトする必要があります。次のコードを使用して、最初のページから 2 番目のページにリダイレクトしました。

文字列 url = GWT.getHostPageBaseURL()+"/UserViewProfile.html";

Window.Location.replace(url);

私の場合、最初のページの URL は次のようになります。

http://127.0.0.1:8888/UserRegistration.html?gwt.codesvr=127.0.0.1:9997

「送信」ボタンで送信すると、次のような URL にリダイレクトされます。

http://127.0.0.1:8888/UserViewProfile.html

2 番目のページ (UserViewProfile.html) では、単純な HTML コンテンツと単純な Textbox ウィジェットを開発して、その機能を確認しました。しかし、HTML コンテンツのみが表示され、「テキストボックス」は表示されません。テキスト ボックスを表示するには、次のように URL を入力する必要があります。

http://127.0.0.1:8888/UserViewProfile.html?gwt.codesvr=127.0.0.1:9997

URL パターンの最後の部分「?gwt.codesvr=127.0.0.1:9997」に自動的にアクセスするにはどうすればよいですか? 手動で追加すると、ホスティング時に問題が発生する可能性があります。誰かが解決策を提供してくれたら、それは素晴らしいことです。

4

1 に答える 1

1

ユースケースがわかりません。とにかく、DevMode か ProdMode かを条件付きで確認し、gwt.codesvr=127.0.0.1:9997それに応じてクエリ文字列を追加する必要があると思います。何かのようなもの:

String url = GWT.getHostPageBaseURL()+ "/UserViewProfile.html";
if (GWT.isProdMode()) {
  Window.Location.replace(url);
} else {
  Window.Location.replace(url + "?gwt.codesvr=127.0.0.1:9997");
}

クエリ文字列パラメーターは、gwt.codesvr=127.0.0.1:9997本番モード (アプリケーションの実際のコンパイル済みバージョン) ではなく、いわゆる開発モードでアプリを (単純化して) ブートストラップするために GWT によって使用されます。このチェックを行わないと、DevMode にいる場合UserViewProfile.html、アプリのコンパイル済みバージョンを探すように要求することになります (コンパイルしたことがない場合、または最近プロジェクトをクリーンアップしただけの場合は、何も表示されません)。

また、(単に#フラグメント識別子を変更するのではなく) URL の書き換えは、アプリケーションのリロードを意味することにも注意してください。

于 2013-04-30T11:39:28.353 に答える