[FacesContext] comment provoquer un 'oncomplete' ?
Bonjour,
Pour télécharger un fichier excel depuis un commandLink jsf je fais ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| File export = exporterVolumes(typeTemps, typeInst, Long.parseLong(profilId), dateDebut, dateFin);
HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=\"Export_details_deal_numero_" + id + ".xls\"");
FileInputStream is = new FileInputStream(export);
byte buffer[] = new byte[1024];
int nbLecture = 0;
// Envoyer le flux dans la réponse
OutputStream os = response.getOutputStream();
while ((nbLecture = is.read(buffer)) != -1) {
os.write(buffer, 0, nbLecture);
}
os.flush();
os.close();
facesContext.responseComplete(); |
Quand je clique sur un bouton ou un lien dans mon appli, je lance une popup d'attente, pour empecher que l'utilisateur clique 1000 fois sur le bouton.
Je fais le show() sur le 'onclick' et le hide() sur le 'oncomplete'.
Or ici, il semble que le commandLink ne recoive jamais de complete, vu que le popup ne s'en va jamais.
Est ce que qqun sait comment faire pour envoyer un complete, ou quel evenement je dois attendre à la place ?
Et si je fais n'importe quoi, n'hésitez pas à me le dire.
Merci d'avance