Mam aplikację Google Web Toolkit (GWT) i po połączeniu z nią, chcę przekazać kilka argumentów/parametrów, które mogą wykorzystać do dynamicznego pobierania danych. Na przykład. jeśli byłaby to aplikacja do wykresów giełdowych, chciałbym, aby mój link zawierał symbol, a następnie by aplikacja GWT przeczytała to i zwróciła się z prośbą do jakiejś usługi giełdowej. Na przykład. http://myapp/gwt/StockChart?symbol=GOOG byłby linkiem do mojej aplikacji StockChart GWT i wysłałby żądanie do mojego serwisu internetowego informacji giełdowych dla akcji GOOG.Najlepsza praktyka parametryzowania aplikacji GWT?
Do tej pory używałem kodu po stronie serwera, aby dodać zmienne JavaScript do strony, a następnie czytałem te zmienne za pomocą JSNI (JavaScript Native Interface).
Na przykład:
w HTML gospodarza:
<script type="text/javascript">
var stockSymbol = '<%= request.getParameter("symbol") %>';
</script>
W kodzie GWT:
public static native String getSymbol() /*-{
return $wnd.stockSymbol;
}-*/;
(Chociaż ten kod jest oparty na prawdziwej kodu, który działa, mam zmodyfikowałem to na to pytanie, więc mogłem się gdzieś zgodzić)
Jednak nie zawsze tak jest działa dobrze w trybie hostowanym (zwłaszcza z tablicami) i ponieważ JSNI nie było w wersji 1.4 i wcześniejszej, domyślam się, że jest inny/lepszy sposób.
To działa dla żądań GET. A co z parametrami POST? Na przykład, jeśli chciałbym poprosić o 200 symboli giełdowych na raz, nie chciałbym, aby wszystkie były w adresie URL –
Proponuję utworzyć widget, który działa zgodnie z pewnym parametrem. Na pewno nie chcesz budować swojej strony za pomocą POST/GET, buduj jej na podstawie XML-a wysyłanego do strony (RPC) i parsuj na kliencie, aby utworzyć wszystkie widżety. Widżety następnie indywidualnie wywołują serwer, aby wyświetlić dane. – Drejc
PS: Musisz przyzwyczaić się do rutynowego sposobu działania GWT (RPC) asynchronicznego (AJAX). GET i POST powinny być używane tylko do wpływania na niektóre zachowania globalne (na przykład wybór języka), ponieważ odświeża całą stronę. – Drejc