Лучшая практика параметризации приложения GWT?

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

  •  02-07-2019
  •  | 
  •  

Вопрос

У меня есть приложение 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 и предыдущих версиях, я предполагаю, что есть другой/лучший способ.

Это было полезно?

Решение

Если вы хотите прочитать параметры строки запроса из запроса, вы можете использовать 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