Echec forward aprés téléchargement [Struts] - Java - Programmation
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;
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?
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
Marsh Posté le 12-02-2007 à 14:44:13
ReplyMarsh 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.
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
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