Question

J'ai une application Google Web Toolkit (GWT) et, lorsque je crée un lien vers celle-ci, je souhaite transmettre des arguments / paramètres qu'elle peut utiliser pour récupérer des données de manière dynamique. Par exemple. s'il s'agissait d'une application de graphique boursier, je voudrais que mon lien contienne le symbole, puis que l'application GWT le lise et fasse une demande à un service boursier. Par exemple. http: // myapp / gwt / StockChart? symbol = GOOG serait le lien vers mon StockChart GWT app et il ferait une demande à mon service Web info stock pour le stock GOOG.

Jusqu'à présent, j'ai utilisé le code côté serveur pour ajouter des variables Javascript à la page, puis j'ai lu ces variables en utilisant JSNI (interface native JavaScript).

Par exemple:

Dans l'hôte HTML:

<script type="text/javascript">
  var stockSymbol = '<%= request.getParameter("symbol") %>';
</script>   

Dans le code GWT:

public static native String getSymbol() /*-{
    return $wnd.stockSymbol;
}-*/;

(Bien que ce code soit basé sur un code réel qui fonctionne, je l’ai modifié pour cette question afin d’avoir pu faire des gaffes quelque part)

Cependant, cela ne fonctionne pas toujours bien en mode hébergé (en particulier avec les tableaux) et comme JSNI n’était pas disponible dans les versions 1.4 et précédentes, je suppose qu’il existe un autre moyen / meilleur.

Était-ce utile?

La solution

Si vous souhaitez lire les paramètres de chaîne de requête à partir de la demande, vous pouvez utiliser la classe 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);
}   

Autres conseils

C’est également une bonne option de "paramétrer" une application GWT en utilisant des valeurs de hachage.

Donc, au lieu de

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

utiliser

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

Il existe quelques outils utiles pour de tels "paramètres" via Le mécanisme d'historique de GWT .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top