GWT: la Captura de los parámetros de la URL en la petición GET

Necesito crear una aplicación GWT, que será llamada por una aplicación externa con determinados parámetros de URL.

Por ejemplo:

http://www.somehost.com/com.app.client.Order.html?orderId=99999.

¿Cómo puedo capturar la idpedido parámetro dentro de la aplicación GWT?

  • Estoy trabajando en un problema similar, ¿cómo se gwt aplicación hace que el parámetro como, orderID=99999? Me refiero a cómo manejar esos parámetros?
  • Si no se considera el Historia mecanismo de en GWT (que hace uso de la # para evitar la recarga de página), que tendrá lugar a un método en el principal punto de entrada de la que se invoca en el principal punto de entrada de la onLoad() método. Cada vez que la página se llama va a invocar su método en el que usted puede inspeccionar y proceso de los parámetros dados.
InformationsquelleAutor Otavio | 2009-02-26

4 Kommentare

  1. 86

    Trate,

    String value = com.google.gwt.user.client.Window.Location.getParameter("orderId");
    //parse the value to int

    P. S. GWT puede invocar nativos de javascript lo que significa que si javascript se pueden hacer las cosas, GWT también pueden hacerlo; por ejemplo, en GWT, puede escribir

    public static native void alert(String msg)
    /*-{
     $wnd.alert("Hey I am javascript");
    }-*/;

    En este caso, usted puede incluso utilizar existentes javascript lib para extraer param valor en la cadena de consulta.

    • donde poner esto en el gwt código? En el principal punto de entrada? Por ejemplo, yo tengo mygwtapp.com/process.html?query=123, que será llamada por algunos otros web app, o simplemente escrito a mano en la barra del navegador.
  2. 19

    GWT dispone de un mecanismo para obtener parámetros de la URL:

    String value = Window.Location.getParameter("param");

    Asegúrese de que su Url en el formulario de:

    http://app.com/?param=value#place en lugar de http://app.com/#place&param=value

    Con el fin de obtener todos los parámetros en un mapa, utilice:

    Map<String, List<String>> map = Window.Location.getParameterMap();
    • Este método Window.Location.getParameter("param") funciona mejor para mi GWT aplicación, ya que puede ser colocado en todas partes.
  3. 0

    Le sugiero que utilice GWT MVP .
    Suponga que su url como

    http://www.myPageName/myproject.html?#orderId:99999

    Y en su AppController.java

    Tratar como

        ......
        public final void onValueChange(final ValueChangeEvent<String> event) {
        String token = event.getValue();
    
        if (token != null) {
            String[] tokens = History.getToken().split(":");
            final String token1 = tokens[0];
            final String token2 = tokens.length > 1 ? tokens[1] : "";
    
            if (token1.equals("orderId") && tonken2.length > 0) {
                Long orderId = Long.parseLong(token2);
                //another your operation
            }
        }
    }
    ...........

    Otra opción , también se puede utilizar con Spring MVC. Aquí es un ejemplo …

    //Below is in your view.java or presenter.java
    
    Window.open(GWT.getHostPageBaseURL() + "customer/order/balance.html?&orderId=99999",
                "_self", "enable");
    
    //Below code in in your serverside controller.java
    
    @Controller
    @RequestMapping("/customer")
    public class ServletController {
    @RequestMapping(value = "/order/balance.html", method = RequestMethod.GET)
    public void downloadAuctionWonExcel(@RequestParam(value = "orderId", required = true) final String orderId,
        final HttpServletResponse res) throws Exception {
        try {
            System.out.println("Order Id is "+orderId);
            //more of your service codes
            }
            catch (Exception ex) {
            ex.printStackTrace();
            }
      }
    }
  4. 0

    Puede utilizar el Activities y Places a hacer eso. Al crear el Lugar para tu página, usted puede establecer la orderId como un miembro. Este miembro puede ser utilizado más tarde cuando se crea el Activity asociados con el lugar (en ActivityMapper).

    La única restricción es que no se puede enviar el idpedido como un parámetro. Usted tendrá que utilizar una url de esta forma :

    127.0.0.1:60206/XUI.html?#TestPlace:orderId=1

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea