Excelファイルをダウンロードするjsfで警告メッセージを表示したい。
ユーザーがダウンロードできるだけでなく、10000を超えるレコードを持つExcelをダウンロードするときに、jsfに警告メッセージを表示したい
Excelファイルをダウンロードするjsfで警告メッセージを表示したい。
ユーザーがダウンロードできるだけでなく、10000を超えるレコードを持つExcelをダウンロードするときに、jsfに警告メッセージを表示したい
1 つの要求に対して複数の応答を送信することはできません。要求ごとに 1 つの応答のみを返すことができます。したがって、警告メッセージとダウンロード用のファイルを送信できるようにするために、クライアントは基本的に 2 つの要求を送信する必要があります。
最初のリクエストでファイルのサイズをチェックし、それに応じてメッセージを設定するのが最も簡単です。
public void submit() {
excelFile = prepareExcelFile();
if (excelFile.getRecordCount() > 10000) {
addGlobalWarn("It's more than 1000 records! It can take quite some time.");
}
}
そして、フォームを送信してwindow.location
、Excel ファイルの正確な URL で条件付きで JS 呼び出しをレンダリングします。
<h:outputScript rendered="#{not empty bean.excelFile}">
window.location = '#{excelFile.url}';
</h:outputScript>