如何使用GWT发布数据并重定向到其他页面?
问题描述:
当我按下按钮时,我会将一些数据发布到服务器,然后重定向到另一个页面。
我使用了RequestBuilder,但它正在等待响应,当然可以。没有任何反应,同一页面停留。我看到RequestBuidler不应该用在这里......我应该用什么来发布数据并能够重定向?
When I press a button I post some data to server and there redirect to another page. I used RequestBuilder but it is waiting the response, and of course get it. And nothing happens, same page stays. I see RequestBuidler shouldn't be used here... What should I use to post data and be able to redirect?
在Spring中
@RequestMapping(method=RequestMethod.POST, value="/ddd")
public ModelAndView processOrder(@RequestBody String orderInString, HttpSession session) throws Exception{
...
return new ModelAndView(new RedirectView("abc"));
}
在GWT中
In 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;
}
答
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();
就是这样。该代码添加FormPanel并发送表单。
Thats it. The code adds FormPanel and sends form.