1

GWT と Java Google App Engine を使用してアプリを作成しています。devmode を使用してアプリのページを起動すると、"?gwt.codesvr=127.0.0.1:9997" というサフィックスを持つ URL が表示されます。そのサフィックスがないと、devmode は機能しないようです。したがって、devmode を使用する場合は、そこにある必要があると思います (devmode プラグインに、devmode UI と通信しているサーバーのアドレスを伝えるためだと思います)。

私のアプリでは、サーバー側で自分のページの 1 つへのリダイレクトを使用するか、自分のページの 1 つへのリンクを含む HTML ページを出力することがあります。ユーザーと同じようにアプリを閲覧したいので、URL 生成コードでパラメーター「gwt.codesvr」を探し、その値を取得し、そのサフィックスをクエリ文字列として URL に戻します。つまり、クエリ文字列をコピーします。生成された HTML をチェックインして、これが期待どおりに動作していることを確認しました。

<form class="float-right" action="/foo/id123?gwt.codesvr=127.0.0.1:9997" method="GET" >
<input class="color-red" type=submit value="Get Started" />
</form>

このようなリンク/リダイレクトは、ユーザーをページからページに移動することを目的としています。ただし、機能していないようです。特に、リンクをクリックして次のページに移動すると、ブラウザの URL にクエリ文字列が表示されません。つまり、Chrome のロケーション バーの URL は次のとおりです。

http://127.0.0.1:8888/foo/id123?

リンクをクリックして、ブラウザーを同じ URL に移動させる方法が実際にはわかりませんが、クエリ文字列はありません (ただし、"?" はありません)。

私のアプリでは、/foo/id123?gwt.codesvr=127.0.0.1:9997 に転送する必要がある Intro.jsp でリンクを生成しています。私の app.yaml ヘッダー セクションは、次のような内容を示しています。

handlers:

- url: /Intro
  jsp: Intro.jsp

# the internal rpc service
- url: /waga/rpc
  name: WagaServiceImpl
  servlet: com.waga.server.WagaServiceImpl
  login: required

- url: /foo/*
  name: FooServlet
  servlet: com.waga.server.FooServlet
  login: required
4

1 に答える 1

0

問題は、アクションURLでパラメータを渡すことに関連しています。この質問はここで回答されています。アクションURLのクエリ文字列を変更することはできないようです。1つの代替方法は、非表示の入力を使用してパラメーターを渡すことです。別のアプローチは、ハイパーリンクを使用することです。

<a href="/foo/id123?gwt.codesvr=127.0.0.1:9997">Link</a>
于 2012-04-13T12:16:50.070 に答える