Je vous suggère y ou pour utiliser GWT MVP. Supposons que votre URL comme
http://www.myPageName/myproject.html?#orderId:99999
Et dans votre AppController.java -
Essayez comme
......
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
}
}
}
...........
Une autre option, vous pouvez également utiliser Spring MVC. Voici un exemple ...
// 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();
}
}
}
Je travaille sur un problème similaire, comment gwt app répond au paramètre, orderID = 99999? Je veux dire comment gère-t-il un tel paramètre? – xybrek
@xybrek Si vous ne tenez pas compte du [Mécanisme de l'historique] (http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsHistory.html) fourni dans GWT (qui utilise le # pour éviter le rechargement de la page), vous devrez besoin de placer une méthode dans votre point d'entrée principal qui est appelée dans la méthode 'onLoad()' du point d'entrée principal.Chaque fois que la page est appelée, elle appelle votre méthode dédiée dans laquelle vous pouvez inspecter et traiter les paramètres donnés. – Dennis