Лучшая практика для параметризации приложения GWT? - PullRequest
6 голосов
/ 23 сентября 2008

У меня есть приложение Google Web Toolkit (GWT), и когда я ссылаюсь на него, я хочу передать некоторые аргументы / параметры, которые он может использовать для динамического извлечения данных. Например. если бы это было приложение с биржевой диаграммой, я бы хотел, чтобы моя ссылка содержала этот символ, а затем приложение GWT прочитало бы его и сделало запрос в какую-нибудь биржевую службу. Например. http://myapp/gwt/StockChart?symbol=GOOG будет ссылкой на мое приложение StockChart GWT, и оно будет делать запрос к моему веб-сервису информации о запасах для акции GOOG.

До сих пор я использовал серверный код для добавления переменных Javascript на страницу, а затем я прочитал эти переменные, используя JSNI (собственный интерфейс JavaScript).

Например:

В хосте HTML:

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

В коде GWT:

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

(Хотя этот код основан на реальном работающем коде, я изменил его для этого вопроса, так что я мог бы где-то дурачиться)

Однако, это не всегда хорошо работает в размещенном режиме (особенно с массивами), и, поскольку JSNI не было в версии 1.4 и предыдущих, я предполагаю, что есть другой / лучший способ.

Ответы [ 2 ]

10 голосов
/ 23 сентября 2008

Если вы хотите прочитать параметры строки запроса из запроса, вы можете использовать com.google.gwt.user.client.Window class:

// 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);
}   
1 голос
/ 24 августа 2012

Это также хорошая опция для «параметризации» приложения GWT с использованием хеш-значений.

Итак, вместо

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

использование

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

Для таких «параметров» есть неплохая инструментальная поддержка через Механизм истории GWT .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...