代码之家  ›  专栏  ›  技术社区  ›  KC Baltz

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

gwt
  •  6
  • KC Baltz  · 技术社区  · 17 年前

    我有一个GoogleWebToolkit(GWT)应用程序,当我链接到它时,我想传递一些参数/参数,它可以用来动态地检索数据。例如,如果它是一个股票图表应用程序,我希望我的链接包含该符号,然后让GWT应用程序读取该符号,并向一些股票服务提出请求。例如。 http://myapp/gwt/StockChart?symbol=GOOG 将是我的股票图表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 回复  |  直到 17 年前
        1
  •  10
  •   Drejc    17 年前

    如果要从请求中读取查询字符串参数,可以使用 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);
    }   
    
        2
  •  1
  •   mxro    14 年前

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

    所以,而不是

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

    使用

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

    有一些很好的工具支持这样的“参数”通过 GWT's History Mechanism .

    推荐文章