Tôi đã làm việc trên ứng dụng CRUD và tôi cần xuất dữ liệu từ cơ sở dữ liệu sang tệp csv. Để xuất khẩu, tôi đã vô hiệu hóa ajax, một cách thể hiện trong đoạn mã sau:Điều kiện cung cấp tệp tải xuống hoặc hiển thị thông báo lỗi xác thực xuất
<p:commandButton value="Export" ajax="false" action="myController.export"/>
Trong phương pháp gọi, tôi có thể tạo các tập tin và tải về nó thông qua phương pháp hữu ích OmniFaces:
Faces.sendFile(file, true);
Sử dụng cùng một phương pháp, tôi kiểm tra xem có thực sự là bất kỳ dữ liệu, và nếu có được không bất kỳ dữ liệu, thoại cảnh báo được hiển thị:
RequestContext.getCurrentInstance().showMessageInDialog(new FacesMessage(FacesMessage.SEVERITY_WARN, "Warning!", "No available data for export."));
Bây giờ, trong khi tất cả những điều này làm việc như dự định, vấn đề là bởi vì ajax bị tắt, hộp thoại không thể được hiển thị động và trang được tải lại. Nếu ajax được bật, hộp thoại được hiển thị động, nhưng quá trình tải xuống tệp không bắt đầu.
Tôi đã cố gắng giải quyết vấn đề này, bằng cách sử dụng Monitor download hoặc bằng cách nhấn vào nút thứ hai, nhưng cho đến nay tôi chưa thực hiện bất kỳ tiến trình nào về vấn đề này.
Có cách nào có thể chấp nhận được để giải quyết các vấn đề như thế này không?