6

我有一个 Google Web Toolkit (GWT) 应用程序,当我链接到它时,我想传递一些可用于动态检索数据的参数/参数。例如,如果它是一个股票图表应用程序,我希望我的链接包含该符号,然后让 GWT 应用程序读取它并向某些股票服务发出请求。例如,http://myapp/gwt/StockChart?symbol=GOOG将是我的 StockChart GWT 应用程序的链接,它会向我的股票信息 Web 服务请求 GOOG 股票。

到目前为止,我一直在使用服务器端代码向页面添加 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 版和之前的版本中不存在,我猜还有另一种/更好的方法。

4

2 回答 2

10

如果要从请求中读取查询字符串参数,可以使用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);
}   
于 2008-09-23T18:29:01.677 回答
1

使用哈希值“参数化”GWT 应用程序也是一个不错的选择。

所以,而不是

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

采用

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

通过GWT 的 History Mechanism对这些“参数”有一些很好的工具支持。

于 2012-08-23T21:26:21.113 回答