2011-06-07 14 views
5

Tengo que crear una URL dinámica que contenga la identificación del usuario y los parámetros del correo electrónico, lo que me obligará a registrar el formulario en mi aplicación GWT. Quiero establecer y obtener los parámetros en la cadena de consulta. Me he referido tp http://code.google.com/p/gwt-examples/source/browse/trunk/System/src/com/gawkat/gwt/system/client/global/QueryString.java?r=1241 pero aquí QueryStringData es inaccesible para mi proyecto. Por favor dígame cómo puedo hacerlo? Cualquier alternativa también podría ayudarme.trabajando con Query String en GWT

Respuesta

2

No creo que haya un simple analizador de cadenas de consulta tokenizado en GWT. Pero puede obtener la cadena de consulta sin procesar usando:

String queryString = Window.Location.getQueryString(); 

Parse de cualquier manera que desee. Yo lo uso como este para establecer indicadores de depuración etc .:

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

Tenga en cuenta que el cambio de valores en la parte de consulta de la dirección URL (entre el ? y la #) volverá a cargar la página. Al cambiar la "parte de hash" de la url (cualquier cosa después de #) no se volverá a cargar la página. Por eso, com.google.gwt.user.client.History utiliza la parte hash.

+0

Gracias Stein, ¿puedes decirme cómo puedo configurar los parámetros de cadena de consulta como http: // localhost: 8084/Demo/id = 1 aqui Quiero establecer y recuperar La identificación. –

+0

Si desea establecer y obtener los parámetros de url usando gwt, recomiendo usar la parte hash. Consulte http://google-web-toolkit.googlecode.com/svn/javadoc/2.2/com/google/gwt/user/client/History.html que usa la parte hash de la url. –

+0

Gracias Stein por su ayuda ahora puedo establecer el valor en la URL. –

2

Si quieres realmente desea analizar el token de la historia (parte hash) para codificar los parámetros, aquí está el código para que:

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; 
} 
1

Hay soporte incorporado para obtener todos los parámetros.

simplemente llame:

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