GWT で URL パラメータを取得する方法

たいしたことじゃないですが、GWT で URL パラメータを取得したくなりました。例えば、URL パラメータで渡されたキーを使ってデータストアからデータを取得したい場面とかで。

GWT は最終的に JavaScript コードにコンパイルされるので、取得する方法があると思っていたら、やっぱりありました。Window.Location クラスを使えば、URL パラメータを取得できます。

import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.datastore.KeyFactory;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.RootLayoutPanel;

public class Main implements EntryPoint {

    public void onModuleLoad() {
        // URL パラメータを取得
        String keyString = Window.Location.getParameter("key");
        Key key = KeyFactory.stringToKey(keyString);

        // コンストラクタで渡してるけど、
        // View の中で直接 URL パラメータを取得してもいい
        RootLayoutPanel.get().add(new MainView(key));
    }
}

Window.Location クラスからは、パスやホスト名、ポート番号なんかも取得できます。JavaScript で使う window.location と同じですね。ま、たいしたことじゃないですが。