开发者

working with Query String in GWT

开发者 https://www.devze.com 2023-03-10 17:44 出处:网络
I have to created a dynamic URLcontaining the user id and email parameters, which will direct to sign up form in my GWT application. I want to set and get the parameters in the query string. I have re

I have to created a dynamic URLcontaining the user id and email parameters, which will direct to sign up form in my GWT application. I want to set and get the parameters in the query string. I have referred tp http://code.google.com/p/gwt-examples/source/browse/trunk/System/src/com/gawkat/gwt/system/client/global/QueryString.java?r=1241 but here QueryStringData is inaccessible to my project.Please tell me how I 开发者_运维知识库can do it? Any alternative could also help me.


@Stein, but there is (a query parameter tokenizer in GWT): e.g. Window.Location.getParameter("debug") will return the string value of the parameter debug.


Don't think there's a simple tokenized query string parser in GWT. But you can get the raw query string by using:

String queryString = Window.Location.getQueryString();

Parse it any way you like. I use it like this to set debug flags etc.:

boolean debugMode = Window.Location.getQueryString().indexOf("debug=true") >= 0;

Note that changing values in the query part of the url (between the ? and the #) will reload the page. While changing the "hash part" of the url (anything after the #) will not reload the page. Which is why the com.google.gwt.user.client.History uses the hash part.


If you want really want to parse the history token (hash part) to encode parameters, here's the code for that:

private static Map<String, String> buildHashParameterMap() {
    final String historyToken = History.getToken();
    Map<String, String> paramMap = new HashMap<String, String>();
    if (historyToken != null && historyToken.length() > 1) {
        for (String kvPair : historyToken.split("&")) {
            String[] kv = kvPair.split("=", 2);
            if (kv.length > 1) {
                paramMap.put(kv[0], URL.decodeQueryString(kv[1]));
            } else {
                paramMap.put(kv[0], "");
            }
        }
    }

    return paramMap;
}


There is in-built support for getting all of the parameters.

Simply call:

     Map<String, List<String>> parameterMap = Window.Location.getParameterMap();
0

精彩评论

暂无评论...
验证码 换一张
取 消