如何使用GWT发布数据并重定向到另一个页面?
当我按下一个按钮时,我将一些数据发布到服务器,然后重定向到另一个页面。 我使用了RequestBuilder,但它正在等待响应,当然,它也会得到响应。什么也没发生,相同的页面保持不变。我知道这里不应该使用RequestBuidler。。。我应该使用什么来发布数据并能够重定向 春天如何使用GWT发布数据并重定向到另一个页面?,gwt,spring-mvc,Gwt,Spring Mvc,当我按下一个按钮时,我将一些数据发布到服务器,然后重定向到另一个页面。 我使用了RequestBuilder,但它正在等待响应,当然,它也会得到响应。什么也没发生,相同的页面保持不变。我知道这里不应该使用RequestBuidler。。。我应该使用什么来发布数据并能够重定向 春天 @RequestMapping(method=RequestMethod.POST, value="/ddd") public ModelAndView processOrder(@RequestBody String
@RequestMapping(method=RequestMethod.POST, value="/ddd")
public ModelAndView processOrder(@RequestBody String orderInString, HttpSession session) throws Exception{
...
return new ModelAndView(new RedirectView("abc"));
}
在GWT中
public void postData(final String data, final String url) {
RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, url);
try {
builder.sendRequest(data, new RequestCallback() {
public void onError(Request request, Throwable exception) {
...
}
public void onResponseReceived(Request request,
Response response) {
if (200 == response.getStatusCode()) {
..
} else {
..
}
}
});
} catch (RequestException e) {
...
}
return;
}
添加更多规范、代码,这是模糊的。 因为您使用的是SpringMVC,所以应该有这样的功能
private static final String newPage = "index2"; //this is resolved with view resolver
@RequestMapping(params = "action=button")
protected String getALPLicense(final RenderRequest request,
final RenderResponse response, final Model model) throws Exception {
try{
}catch{
}
return newPage; //this is your new redirected page
}
就这样。代码添加FormPanel并发送表单。Hi!谢谢你的建议。奇怪的是,我在尝试将param添加到表单时遇到异常:form.add(param);原因:java.lang.IllegalStateException:SimplePanel只能包含com.google.gwt.user.client.ui.SimplePanel.add(SimplePanel.java:57)com.webshop.client.HelloGwt$5.onClick(HelloGwt.java:271)com.google.gwt.event.dom.client.ClickEvent.dispatch(ClickEvent.java:54)上的一个子小部件您不能直接将参数添加到FormPanel,因为它是一个小部件面板。添加多个参数的唯一方法是通过另一个面板添加它们。在本例中,它是FlowPanel。请记住,它是参数的唯一容器。这里有扩展教程:。请接受我的回答作为解决方案。谢谢回复!但在表单.submit()完成后,浏览器仍然不会刷新页面!相同的页面保持不变!我是说form.submit()是同一个异步调用吗?我在浏览器中尝试了我的控制器,更改了获取的方法,它成功了(重定向到新的url),但在java脚本中没有+太棒了。你回答了这个非常重要的问题。
FormPanel form = new FormPanel("_self");
form.setMethod(FormPanel.METHOD_GET);
Hidden params0 = new Hidden("param1", "value1");
Hidden params1 = new Hidden("param1", "value2");
Hidden params2 = new Hidden("param2", "value3");
FlowPanel panel = new FlowPanel();
panel.add(params0);
panel.add(params1);
panel.add(params2);
form.add(panel);
form.setAction(GWT.getModuleBaseURL() + "../MyServlet");
RootPanel.get().add(form);
form.submit();