Bonjour tout le monde,

j'aimerai exporter un fichier au format csv selon certains critere renseigner par l'utilisateur.
voila ce que j'ai deja fait mais cela me renvoie une page blanche.

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
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
 
 public String exportCSV( HttpServletRequest request,  HttpServletResponse response){
      try {
         String type = (String) request.getAttribute("type");
         String dateDebut = (String) request.getAttribute("dateDebut");
         String dateFin = (String) request.getAttribute("dateFin");
 
         if (type == null || type.equals("0")) {
            return null;
         }
         File fileRep = new File(Contexte.getInstance().getCheminApplication() + "log");
         // Créer le répertoire de log si inexistant
         if (!fileRep.exists()) {
            fileRep.mkdir();
         }
         File fileLog = new File(fileRep, "journal.log");
         String nomRapport = fileLog.getName();
         nomRapport = nomRapport.substring(0, nomRapport.indexOf("."));
 
         PrintWriter pt = response.getWriter();
         FileInputStream fr = new FileInputStream(fileLog);
         BufferedReader br = new BufferedReader(new InputStreamReader(fr, Encodage.UTF8));
 
         String lignelu = br.readLine(); // lire une 1ere ligne
         while (lignelu != null) { // tant qu'il ya des lignes
            // System.out.println("lignelu"+lignelu);
            StringTokenizer strt = new StringTokenizer(lignelu, ";"); //recuperer la ligne sous forme de token separer par un ; 
            String typeLigne = strt.nextToken(); // on prend le type sous forme de code
            System.out.println("typeLigne"+typeLigne);
            String typeAction = strt.nextToken();
            String dateRecup = strt.nextToken(); // on récupère la date de la ligne
            dateRecup = dateRecup.substring(7,11) + dateRecup.substring(3, 7) + dateRecup.substring(1, 3); // on la convertie en  yyyy/MM/dd   
            System.out.println("daterecup: " + dateRecup);
 
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
            Date dd = null, df = null, dr;
            dr = sdf.parse(dateRecup);
            if(dateDebut.length()>0){
               dd = sdf.parse(dateDebut);   
            }
            if(dateFin.length()>0){
               df = sdf.parse(dateFin);
            }
            System.out.println("dateDebut converti: "+dd); 
            System.out.println("dateDebut converti: "+df);
            if ( (type.equals("4") || typeLigne.equals(type)) && ((dateDebut.equals("")||!dr.before(dd)) && (dateFin.equals("")||!dr.after(df))) ){ //si le type de la ligne du fichier correspond au type rechercher
                                                                                                                                 // et si la date de debut contient rien ou date debut est <= dateDebut                                                                                                                  // et si la date fin contient rien  ou la date fin est >= dateFin
               dateRecup = dateRecup.substring(8) + dateRecup.substring(4, 8) + dateRecup.substring(0, 4);
               System.out.println("dateRecup"+dateRecup);
               pt.print("<tr class='texte_liste'>"); //imprimer la balise d'ouverture d'une ligne dans un tableau
               pt.print("<td class='entetelisteb'><div align='center'>"+ typeAction +"</div></td>");
               pt.print("<td class='entetelisteb'><div align='center'>"+ dateRecup +"</div></td>");
 
               System.out.println("un type trouvée compris dans la periode");
 
               while (strt.hasMoreTokens()) { // tant qu'il ya des tokens
                  pt.print("<td class='entetelisteb'><div align='center'>" + strt.nextToken() + "</div></td>");
 
               }
               pt.print("</tr>");
            }
            lignelu = br.readLine();// relire une nouvelle ligne
         }
         fr.close();
 
 
         if (type.equals("csv")) {
            ecrireFichierDansFluxReponse(response, nomRapport, fileLog, "text/csv", true);
         }
      }
      catch (Exception e) {
         traiterErreur(request, response, e);
      }
      return null;
   }
ma jsp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
 
...
 
&nbsp;<input type="image" src="${pageContext.request.contextPath}/work/images/csv_logo.gif" width="20" height="17" onclick = "javascript:doAction('adminJournal.exportCSV','form1','nomMethod')" title="<fmt:message key="admin.journalActions.btnExportCSV.bulle"/>">
<input type="image" src="${pageContext.request.contextPath}/work/images/excel_logo.gif" width="20" height="17" onclick = "javascript:doAction('adminJournal.exportExcel','form1','nomMethod')" title="<fmt:message key="admin.journalActions.btnExportExcel.bulle"/> ">
 
...
quelqu'un a t-il un retour d'expérience ou une solution a me proposer ?

merci d'avance