GWT,使用POST请求导航到页面

时间:2010-09-11 08:56:27

标签: gwt post

我想使用POST请求离开我的GWT应用程序。如果它是一个GET,我可以使用Window.Location,如果我不需要它是动态的,我可以硬编码一个表格并提交它。 FormPanel似乎是创建和提交表单的答案,但它是异步的,我希望用户的浏览器遵循表单提交,导航离开我的应用程序,而不是仅显示结果。

有人知道如何在Google Web Toolkit中执行此操作吗?

3 个答案:

答案 0 :(得分:4)

好的,明白了!

将null传递给FormPanel的String构造函数有效地说“替换当前页面”:

new FormPanel((String)null);

这个论坛帖子很有用: http://www.coderanch.com/t/120264/GWT/GWT-HTTP-post-requests

答案 1 :(得分:0)

我自己没有这样做,但我认为您应该能够创建一个FormPanel,然后将其元素转换为FormElement并在FormElement上调用submit。

FormPanel formPanel = new ...
FormElement form = FormElement.as(formPanel.getElement());
form.submit();

答案 2 :(得分:0)

我认为你的FormElement想法会起作用,但不幸的是它仍然发送它异步。以下两个成功发送请求并获得响应,但唉,页面不会更改。

_tmp.addClickHandler(new ClickHandler() 
{
    @Override
    public void onClick(ClickEvent event_)
    {
        doPost();
    }

    public native void doPost() /*-{
        var form = document.createElement("form");
        form.setAttribute("method", "GET");
        form.setAttribute("action", "http://www.google.com");
        document.body.appendChild(form);    
        form.submit();
    }-*/;
});

public void onClick(ClickEvent event_)
{
    final FormPanel form = new FormPanel();
    form.setAction("http://www.google.com");
    form.setMethod(FormPanel.METHOD_GET);
    RootPanel.get("main").add(form);
    FormElement formElement = FormElement.as(form.getElement());
    formElement.submit();
}

我意识到我在上面的例子中使用了GET方法。这纯粹是因为Google只接受GET。我在自己的servlet上尝试POST时得到的结果相同。

必须有办法做到这一点。