参数化GWT应用程序的最佳实践?

时间:2020-03-06 14:36:31  来源:igfitidea点击:

我有一个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);
}