[Struts] Echec forward aprés téléchargement

Echec forward aprés téléchargement [Struts] - Java - Programmation

Marsh Posté le 08-02-2007 à 14:15:12    


Bonjour,
 
Voilà j'ai un petit souci de forward sur ma page jsp, plus précisement de rafraichissement, aprés le téléchargement d'un fichier.
 
Voila ce que je réalise :  
 
//Envoi du flux de données au navigateur pour le téléchargement.
response.addHeader("Content-Disposition", "attachment; filename="+fichierNom);
response.setContentType("application/pdf" );  
response.setContentLength(out.size());
out.writeTo(response.getOutputStream());
out.close();
 
je termine part :  
return mapping.findForward("success" );
 
Si je ne commande pas le téléchargement de donnée le forward s'execute sans problème
Sinon il l'ignore.
 
Est-il possible de réaliser cette action aprés un téléchargement?
 
Remarque mon forward se veut s'appliquer à la meme page pour rafraichir l'affichage.
Merci

Reply

Marsh Posté le 08-02-2007 à 14:15:12   

Reply

Marsh Posté le 08-02-2007 à 15:59:30    

A partir du moment où tu écris dans la réponse, tu ne peux pas faire de forward pour la simple et bonne raison qu'une requete ne peut "avoir qu"une réponse".
 
Dans ton cas, la réponse, c'est l'envoi d'un fichier et il n'y a rien d'autre à faire donc il faut terminer par un return null;
 

Reply

Marsh Posté le 08-02-2007 à 16:24:06    

Merci pour ces infos.
 
Donc pour pouvoir "rafraichir" ma page aprés l'envoi du fichier j'ai deux possibiliés :  
1. Ecrire ailleurs que dans la réponse pour pouvoir faire un forward
ou
2. Activer mon rafraichissement directement dans ma page jsp.
(j'essaye en ce moment cette action : <a href="monAction" onclick="setTimeout(self.refresh(),9000);"> mais il n'attends pas vraiment les 9 secondes!!)  
 
Existe-t-il la possibilité d'envoyer une action à ma page (par exemple un refresh) depuis ma class action?

Reply

Marsh Posté le 08-02-2007 à 17:05:57    

Bon j'ai trouvé une échapatoire (je la donne si ca interesse des personnes):
 
en fait dans ma jsp je fais ca (possibilité n°2):
 
<a href="monAction "onClick="Attendre(15000);">
 
et plus haut j'ai ce script :
 
<script language="javascript">
function Attendre(Duree)
{
  a = setTimeout("window.location.reload();",Duree);
}
</script>
 
Du coup au bout de 15 secondes je recharge ma page (ce qui laisse le temps de mettre à jour ma base de données et mes constantes affichées dans "monAction" )
 
Etrangement ceci ne fonctionne pas :  
<a href="monAction"  onClick="setTimeout("window.location.reload();",15000);">
 
voila


Message édité par nam2 le 08-02-2007 à 17:06:44
Reply

Marsh Posté le 09-02-2007 à 15:10:59    

parce que tu n'echappe pas les doubles-quotes ?
 
sinon, c'est crade comme solution, non ?


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 12-02-2007 à 14:44:13    

brisssou a écrit :

sinon, c'est crade comme solution, non ?


 
Oui, tu me propose quoi alors?

Reply

Marsh Posté le 12-02-2007 à 15:46:16    

je dirais, à froid, sans y avoir trop réfléchi : ouverture de pop-up. Dans la pop up, tu ouvres en fait l'url qui te permet de charger ton fichier, dans la page principale, tu vas là ou tu voulais aller.
 
parce que là, imaginons que ton traitement prenne plus de 15 sec pour une raison quelconque, ça va pas le faire.
 
m'enfin je dis ça de mémoire... les trucs que je dis le vendredi, faut pas prêter attention.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 12-02-2007 à 16:30:38    

En quelque sorte, à la fermeture de la pop up, je recharge ma page principale.
J'aime bien cette idée.
Je suis parti sur autre chose maintenant, mais j'essairais ca cette semaine.
Merci

Reply

Marsh Posté le 13-02-2007 à 08:42:38    

oui aussi oui.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed