2009-06-19 15 views
6

私は数日前からこれを試しています。GWT FormPanelを正常に動作させることができません

final FormPanel form = new FormPanel(new NamedFrame("test")); 
form.setAction("/designer"); 
form.setMethod(FormPanel.METHOD_POST); 
VerticalPanel panel = new VerticalPanel(); 
form.setWidget(panel); 

final TextBox tb = new TextBox(); 
tb.setName("style"); 
panel.add(tb); 
panel.add(new Button("Submit", new ClickHandler() { 
public void onClick(ClickEvent event) { 
    Window.alert("submitting to:" + form.getTarget()); 
    form.submit(); 
    } 
})); 
form.addSubmitCompleteHandler(new SubmitCompleteHandler() { 
public void onSubmitComplete(SubmitCompleteEvent event) { 
    Window.alert("complete"); 
    Window.alert(event.getResults()); 
} 
}); 

ホストモードでは、[送信中]警告が発生しても何も起こりません。 Chromeでは、フォームは別のタブに読み込まれますが、POST自体は空です。 FirefoxとIEでは、アラート後に何も起こりません。何か案は?

すべてのページ要求からリクエストヘッダーと本文を出力するサーブレットを/ designerに設定しました。私はプレーンなHTMLページからこのサーブレットにヒットし、期待される出力を見ることができます。 GWTからリクエストは表示されません(リクエストが表示されるが、空のボディがあるChromeを除く)。

答えて

1

コードはFormPanel APIの例とほぼ同じですので、ロジックが正しいと仮定する必要があります。

"/ designer"にサーブレットがありますか? SubmitCompleteHandlerのドキュメントでは、送信が成功した場合にのみonSubmitCompleteイベントが発生すると記載されています。ここで

はフォームポストを処理するサーブレットを書くためのいくつかのサンプルコードを含むスレッドです:http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/77e68fcb9097debc

2

は、下にform.setWidget(panel);を移動してみてください。

また、縦パネルではなく、コンテナパネルにフォーム(add(form);)を追加してください。

0

私はこのポストは3歳ですけど、ここの土地私のような任意のGoogle社員がのため、 のためにこれはOnSubmitCompleteEventが発射されるための条件は以下のとおりです。

  1. を使用しませんFormを作成する-argコンストラクタ:FormPanel f = new FormPanel();Javadocのように:

    新しいFormPanelを作成します。このコンストラクタを使用して作成されたとき、それは 隠さ<IFRAME>要素に提出され、結果 {@link SubmitCompleteHandler}を介して利用可能に提出されるであろう。

    成功した場合はフォーム提出完了 イベントをトリガーするのは唯一のイベントです。

  2. が呼び出されるアクションは コンテンツタイプと応答を返すことを確認してください:「text/htmlの」

一つの解決策を、あなたはまだ、外部NamedFrame使用する必要がある場合は、フレーム上のLoadEventを監視することです。フレームの読み込みが開始されると、サーバからの応答が到着したことを意味します。 ...

NamedFrame frame = new NamedFrame("test"); 
frame.addLoadHandler(new LoadHandler() 
{ 
    void onLoad(LoadEvent event) 
    { 
     //your code here 
    } 
}); 

希望します。

関連する問題