6

Google Web Toolkit (GWT) アプリケーションがあり、それにリンクするときに、データを動的に取得するために使用できるいくつかの引数/パラメーターを渡したいと考えています。たとえば、それが株価チャート アプリケーションの場合、リンクにシンボルを含め、GWT アプリにそれを読み取らせて、株式サービスにリクエストを送信させます。たとえば、http://myapp/gwt/StockChart?symbol=GOOGは StockChart GWT アプリへのリンクであり、GOOG 株の株式情報 Web サービスにリクエストを送信します。

これまでのところ、サーバー側のコードを使用して Javascript 変数をページに追加し、次に JSNI (JavaScript Native Interface) を使用してそれらの変数を読み取りました。

例えば:

ホスト HTML で:

<script type="text/javascript">
  var stockSymbol = '<%= request.getParameter("symbol") %>';
</script>   

GWT コードでは:

public static native String getSymbol() /*-{
    return $wnd.stockSymbol;
}-*/;

(このコードは動作する実際のコードに基づいていますが、この質問のために修正したため、どこかで間抜けになっている可能性があります)

ただし、これはホスト モード (特に配列の場合) で常にうまく機能するとは限りません。JSNI はバージョン 1.4 以前には存在しなかったため、別の/より良い方法があると思います。

4

2 に答える 2

10

リクエストからクエリ文字列パラメーターを読み取りたい場合は、com.google.gwt.user.client.Windowクラスを使用できます。

// returns whole query string 
public static String getQueryString() 
{
    return Window.Location.getQueryString();
}

// returns specific parameter
public static String getQueryString(String name)
{   
    return Window.Location.getParameter(name);
}   
于 2008-09-23T18:29:01.677 に答える
1

ハッシュ値を使用してGWTアプリケーションを「パラメーター化」するのも良いオプションです。

だから、代わりに

 http://myapp/gwt/StockChart?symbol=GOOG

使用する

 http://myapp/gwt/StockChart#symbol=GOOG

GWTのHistoryMechanismを通じて、このような「パラメータ」に対する優れたツールサポートがいくつかあります。

于 2012-08-23T21:26:21.113 に答える