1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| public ActionForward monAction(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
//Vérification des donnes de l'utilisateur
ActionMessages errors = new ActionMessages();
...
//Cas A]Erreurs
this.saveErrors(request, errors);
return refreshInfos (mapping, form, request, response);
//Cas B]OK : on crée un fichier Excel et on ouvre la boîte de dialogue "Enregistrer Sous"
//B1)Fichier Excel construit et enregistré sur le serveur
String file = monService.createExcelFile(lstArg);
//B2)Boîte de dialogue et enregistrement
try {
OutputStream out = response.getOutputStream();
File fTemp = new File(file);
response.setHeader("Content-length", "" + fTemp.length());
response.setHeader("Content-disposition", "attachment; filename=\"" + "monFichierExcel" + "\"");
response.setContentType("application/x-download");
response.setHeader("Pragma", "public");
response.setHeader("Cache-control", "must-revalidate");
int count;
int countTotal = 0;
byte buf[] = new byte[4096];
BufferedInputStream is = new BufferedInputStream(new FileInputStream(fTemp));
while ((count = is.read(buf)) > -1) {
countTotal += count;
out.write(buf, 0, count);
}
if (countTotal > 0) {
out.flush();
out.close();
}
is.close();
fTemp.delete();
} catch (Exception e) {
}
//return refreshInfos (mapping, form, request, response); //Aucun effet!
return null; //impossible de rafraichir la page après.
} |
Partager