GWT アプリをパラメーター化するためのベスト プラクティスは何ですか?

StackOverflow https://stackoverflow.com/questions/122098

  •  02-07-2019
  •  | 
  •  

質問

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 以前には存在しなかったため、別の/より良い方法があると思います。

役に立ちましたか?

解決

リクエストからクエリ文字列パラメータを読み取りたい場合は、 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);
}   

他のヒント

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

したがって、代わりに

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

使用

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

このような「パラメータ」をサポートする優れたツールがいくつかあります。 GWT の履歴メカニズム.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top