通話を行う必要はありませんAJAX。
を で構成byte[]されたStruts2のStream結果として返す必要があるだけですContentDisposition: attachment;(ContentDisposition: inlineデスクトップ アプリケーションでダウンロードまたは開くことを尋ねるのではなく、ブラウザ内で開こうとします)。
何かが起こっていること、リクエストが送信され、システムがフリーズしていないことをユーザーに通知するには、 Loading OVERLAY.
オーバーレイはページ上に配置される要素で、通常は部分的に透明な背景、「読み込み中...」というアニメーション画像、およびモーダル動作 (ページが変更されるまで閉じず、ダブルクリックなど、同じリクエストの二重投稿など)。
もちろん、添付ファイルを開いた場合、ページは変更されないため、ダウンロードの終了をインターセプトして自分でオーバーレイを閉じるか、ユーザーに閉じるボタンを提供する必要があります。
それを傍受するには、Struts2 Execute and Wait Interceptor.
カスタム オーバーレイを作成する場合は、ajaxload.info Generator.
車輪を再発明したくない場合は、 のような既存のオーバーレイを調べることができますjQuery TOOLS。