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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<input type="button" onclick="displayPrint();" value="Afficher"/>
où la fonction javascript displayPrint() est la suivante :

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);
}
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
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;
  }
  ...
}
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.
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