Domanda

Ho un'applicazione Google Web Toolkit (GWT) e quando mi collego ad essa, voglio passare alcuni argomenti / parametri che può usare per recuperare dinamicamente i dati. Per esempio. se fosse un'applicazione per grafici azionari, vorrei che il mio link contenesse il simbolo e quindi l'app GWT lo leggesse e facesse una richiesta ad alcuni servizi di stock. Per esempio. http: // myapp / gwt / StockChart? symbol = GOOG sarebbe il link al mio StockChart GWT app e farebbe una richiesta al mio servizio web di informazioni di borsa per lo stock GOOG.

Finora ho usato il codice lato server per aggiungere variabili Javascript alla pagina e poi ho letto quelle variabili usando JSNI (JavaScript Native Interface).

Ad esempio:

Nell'HTML host:

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

Nel codice GWT:

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

(Anche se questo codice si basa su un codice reale che funziona, l'ho modificato per questa domanda, quindi potrei essere andato in giro da qualche parte)

Tuttavia, ciò non sempre funziona bene in modalità host (specialmente con gli array) e poiché JSNI non era presente nella versione 1.4 e precedenti, suppongo che ci sia un altro / modo migliore.

È stato utile?

Soluzione

Se desideri leggere i parametri della stringa di query dalla richiesta, puoi utilizzare 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);
}   

Altri suggerimenti

È anche una buona opzione per "parametrizzare" un'applicazione GWT usando i valori hash.

Quindi, invece di

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

utilizzo

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

C'è un buon supporto di strumenti per tali 'parametri' attraverso GWT's History Mechanism .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top