2012-04-24 8 views
0

私の@RequestMapping POSTメソッドの1つでは、HttpServletResponse(xmlファイル)を返す必要があり、ビューを更新したい。通常はパスを返しますが、この場合、ユーザーがダウンロードしているxmlファイルに追加されます。 最初に応答を閉じてから送信し、次にビューを生成(リフレッシュ)する方法はありますか?レスポンス後にビューを更新する

+0

なぜ表示を更新する必要がありますか? – Stefan

+0

xmlをダウンロードするとページ上のデータが変更され、できるだけ早く更新する必要があります。 – xwhyz

答えて

1

いいえ、そうではありません。しかし、確かに100%ではない。ファイルを送信して、応答にリダイレクトヘッダーを設定することもできます。私はちょうど今それを試していないが、私はあなたがリダイレクトされると思います。しかし、本当にブラウザに依存します。ブラウザはファイルをダウンロードすることもできます。

レスポンスを送信したら、クライアントによって新しいリクエストが生成される必要があるため、サーバー側を閉じて新しいリクエストを作成する方法はありません。

私はJavascriptを使用したソリューションを提案します。 AJAXか、現在の場所を2回設定するだけです(最初はダウンロード、次に新しいビュー)。私は確信していません。location.href

実際のコード例が必要な場合は、何か製造に時間がかかるので教えてください。

+0

Unfortunatelly、xmlに例外が追加されます: "java.lang.IllegalStateException:データがクライアントにコミットされた後にsendRedirect()できません。 " – xwhyz

+0

はい、既にヘッダーが送信されているためです。私が言ったように、あなたは試みることができます。おそらく、ヘッダーを手動で追加すると機能します。 void addHeader(java.lang.String name、java.lang.String value) ' – Dariop

+0

進捗しましたか?あなたはおそらくJavaScriptのソリューションを考慮に入れるべきです。 – Dariop

関連する問題