recuperar - que es request en java
GWT: captura de parĂ¡metros de URL en solicitud GET (4)
Necesito construir una aplicación GWT que será llamada por una aplicación externa con parámetros URL específicos.
Por ejemplo:
http://www.somehost.com/com.app.client.Order.html?orderId=99999 .
¿Cómo capturo el parámetro orderId dentro de la aplicación GWT?
GWT tiene la capacidad de obtener parámetros de la URL:
String value = Window.Location.getParameter("param");
Asegúrese de que sus URL estén en forma de:
http://app.com/?param=value#place lugar de http://app.com/#place¶m=value
Para obtener todos los parámetros en un mapa, use:
Map<String, List<String>> map = Window.Location.getParameterMap();
Puede usar las Activities
y Places
para hacer eso. Cuando crea el lugar para su página, puede establecer el ID de pedido como miembro. Este miembro se puede utilizar como palabras posteriores cuando crea la Activity
asociada con el lugar (en ActivityMapper ).
La única restricción es que no puede enviar el ID de pedido como un parámetro normal. Deberá usar una url con este formulario:
127.0.0.1:60206/XUI.html?#TestPlace:orderId=1
Te sugiero que uses GWT MVP . Supongamos que su url como
Y en su AppController.java -
Prueba 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 puede usar con Spring MVC . Aquí hay 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();
}
}
}
Tratar,
String value = com.google.gwt.user.client.Window.Location.getParameter("orderId");
// parse the value to int
PS GWT puede invocar javascript nativo, lo que significa que si javascript puede hacer las cosas, GWT puede hacerlo también; por ejemplo, en GWT, puedes escribir
public static native void alert(String msg)
/*-{
$wnd.alert("Hey I am javascript");
}-*/;
En este caso, incluso puede usar lib existente de javascript para extraer el valor de param en la cadena de consulta.