Bonjour,
J'essaie de générer un fichier de type "image/svg+xml" dans une nouvelle fenêtre. Dans ma jsp, j'ai le code suivant :
où la fonction javascript displayPrint() est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <input type="button" onclick="displayPrint();" value="Afficher"/>
et dans la fonction doPerform de la classe action, j'ai le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 function displayPrint() { windowOptions="toolbar=no,location=no,directories=no,status=yes,menubar=no,resizable=yes,copyhistory=no,scrollbars=yes,width=800,height=700"; window.open('display.do?actionType=GENERATE","",windowOptions); }
Tout fonctionne, cad le fichier s'affiche correctement dans une nouvelle fenêtre mais le problème est que tout le code de la classe action est parcouru 2 fois ! Comme si le formulaire (dans la jsp) était soumis 2 fois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public ActionForward doPerform(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { ... if (actionType.equalsIgnoreCase("GENERATE")) { //création du string buffer sb contenant le code xml byte[] file = sb.toString().getBytes(); response.setContentType("image/svg+xml"); response.setContentLength(sb.length()); java.io.OutputStream out = response.getOutputStream(); out.write(file); out.flush(); out.close(); return null; } ... }
Est-ce que quelqu'un aurait une idée ?
Note : si je remplace le type "image/svg+xml" par "text/html", le fichier s'affiche sous format texte (ce qui n'est pas ce que je veux) mais au moins, le code n'est parcouru qu'une seule fois !
Merci de m'aider à résoudre ce problème bien mystérieux...
Julie
[Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java
Partager