IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

[JSP] Trier par date une liste de fichier en JSP


Sujet :

Servlets/JSP Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut [JSP] Trier par date une liste de fichier en JSP
    Voici mon code

    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    <%@ page import="java.util.*" %>
    <%@ page import="java.io.*" %>
    <%@ page import="java.text.DateFormat" %>
     
    <%
            try{
                    String folder = request.getParameter("folder");
                    if (folder==null) folder = "inconnu";
     
                    // Titre de la page web
                    out.println("<html>");
                    out.println("<head>");
                    out.println("<title>Rapports Hebdomadaires de la R‰gion " + folder + "</title>");
                    out.println("<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>");
                    out.println("<link rel='stylesheet' href='style.css' type='text/css'>");
     
                    // Interdiction du click droit
                    out.println("<script language=\"javascript\">");
                    out.println("var texte=\"Fonction interdite !\";");
                    out.println("var ie4= (navigator.appName=='Microsoft Internet Explorer')?1:0;");
                    out.println("var ns4= (navigator.appName=='Netscape')?1:0;");
                    out.println("");
                    out.println("function eventSetup() {");
                    out.println("if (ie4){document.onmousedown = mouseDown;}");
                    out.println("if(ns4) {document.captureEvents(Event.MOUSEDOWN);document.onmousedown = mouseDown;}");
                    out.println("}");
                    out.println("");
                    out.println("function mouseDown(e) {");
                    out.println("if (ie4 && event.button==2) {setTimeout('alert(texte)',1);}");
                    out.println("if (ns4 && e.which==3){setTimeout('alert(texte)',1);}");
                    out.println("}");
                    out.println("");
                    out.println("eventSetup();");
                    out.println("</script>");
                    out.println("</head>");
                    out.println("");
     
                    // Initialisation des variables.
                    int i;
                    String nomFichier;
                    Date DateFichier;
                    Locale locale = Locale.getDefault(); // On recupere la langue du systeme
                    DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, locale); // On determine le format de la date € afficher
                    File dossier = new File("/data/ftp/Rapports/"+folder);
                    File[] Fichier = dossier.listFiles();
     
                    // Mis en page g‰n‰rale.
                    out.println("<Body>");
     
                    out.println("<td width='77%' height='50' >");
                    out.println("<div align='center'><b><font color='#764500' face='Monotype Corsiva' size='5'>");
                    out.println("Rapports Hebdomadaires de la Région " + folder + "</b></font></div></td>");
                    out.println("<td width='77%' height='35' >");
                    out.println("<div align='left'><font color='#764500' face='Monotype Corsiva' size='3'>");
                    out.println(" &nbsp; </b></font></div></td>");
     
                    out.println("<table width='100%' border='0'>");
                    out.println("<tr>");
                    out.println("<td height='40' width='2%'>&nbsp;</td>");
                    out.println("<td width='45%'><font color='#764500' face='Monotype Corsiva' size='3'>Fichier de consolidation</td>");
                    out.println("<td width='20%'><font color='#764500' face='Monotype Corsiva' size='3'>Date</td>");
                    out.println("</tr>");
                    out.println("</table>");
     
                    out.println("<form name='frmFichier' method='POST'>");
                    // Affichage de tous les fichiers contenus dans le repertoire "Folder"
                    for (i=0; i < Fichier.length; i++)
                            {
                            DateFichier = new Date(Fichier[i].lastModified());
                            nomFichier = Fichier[i].getName();
                            // Mis en page des fichiers.
                            out.println("<table width='100%' border='0'>");
                            out.println("<tr>");
                            out.println("<td bgcolor='#FFC993' height='40' width='2%'>&nbsp;</td>");
                            out.println("<td width='45%'><a href=\"http://tata.toto.fr/Rapports/"+ folder + "/" + nomFichier + "\">");
                            out.println(nomFichier + " </a></td>");
                            out.println("<td width='20%'>" + dateFormat.format(DateFichier) + "</td>");
     
                            out.println("</tr>");
                            out.println("</table>");
                            }
                    out.println("</form>");
                    out.println("</Body>");
                    out.println("</html>");
            }
            catch (Exception ioe){} 
    %>
    J'aimerai qu'a l'affichage, les fichiers soient trier par date.
    Comment je peux faire ceci simplement?

    Merci d'avance.


    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java

  2. #2
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Dans ton exemple, quel est l'interet d'utiliser une JSP si c'est pour ecrire que des out.println ???

    Autant dire que c'est illisible.
    Etre c'est etre relatif.

  3. #3
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    tout à fait d'accord

    sinon tu peux refaire le compareTo de File à partir de la méthode lastModified

    mais c'est qu'une idée
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Mon JSP me sert a recuperer les noms de fichier et leur date dans un répertoire.
    Je ne peux utiliser que se langage.

  5. #5
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Les JSP sont faites pour integrer du contenu dans ta charte graphique et pas l'inverse.

    regarde la différence :
    ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <% 
       try{ 
          String folder = request.getParameter("folder"); 
          if (folder==null) folder = "inconnu"; 
     
          // Titre de la page web 
          out.println("<html>"); 
          out.println("  <head>"); 
          out.println("    <title>Rapports Hebdomadaires de la R‰gion " + folder + "</title>"); 
          out.println("    <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>"); 
          out.println("    <link rel='stylesheet' href='style.css' type='text/css'>");
    Du code propre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <%
    String folder = (request.getParameter("folder")!=null)?request.getParameter("folder"):"inconnu";
    %>
    <html>
      <head>
        <title>Rapports Hebdomadaires de la Région <%=folder%></title>
        <meta http-equiv='Content-Type' content='text/html; chars<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>
        <link rel='stylesheet' href='style.css' type='text/css'> <link rel='stylesheet' href='style.css' type='text/css'>
      </head>
    ...
    tu vois la différence j'espère.
    Etre c'est etre relatif.

  6. #6
    Futur Membre du Club
    Inscrit en
    Juin 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Ok!
    Mais maintenant, comment tu genere une page dynamque.
    CAD, modifie l'affichage quans le contenu du répertoire change.
    En plus, j'ai recupere une partie du code sur ce site!

    Alors si c est pour me faire la lecon ok, mais j'aimerai aussi une solution sur le tri des fichiers.

  7. #7
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Tu fais une classe qui dérive de File genre MonFile dont tu redéfinis la méthode compareTo(...), à partir de lastModified(). Tu crées une collection de MonFile et tu la trie avec Collections.sort(...)
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  8. #8
    Futur Membre du Club
    Inscrit en
    Juin 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    La je suis novice!
    Peux tu m'orienter vers un exemple, remika?
    Merci

  9. #9
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    tu peux faire un truc du style

    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
     
    import java.io.File;
     
    public class MonFile implements Comparable<MonFile>
    {
      	MonFile(String s)
      	{
      		this.f = new File(s);
      	}
     
      	public int compareTo(MonFile f2)
      	{
      		return (int)(f2.f.lastModified()-this.f.lastModified());
      	}
     
      	public String toString()
      	{
      		return f.getName();
      	}
     
      	private File f;
    }
    et par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	ArrayList<MonFile> liste = new 	ArrayList<MonFile>();
        	liste.add(new MonFile("fichier1"));
        	liste.add(new MonFile("fichier2"));
            (...)
     
            Collections.sort(liste);
     
        	for(MonFile f:liste)
        	{
        		System.out.println(f);
        	}
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  10. #10
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    ya mieux, tu fais un Comparator perso pour les File et tu tries avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Collection.sort(liste,ton_comparator);
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  11. #11
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    import java.util.Comparator;
    import java.io.File;
     
    public class MonComparator implements Comparator<File>
    {
    	public int compare(File f1,File f2)
    	{
    		return (int)(f2.lastModified()-f1.lastModified());
    	}
    }
    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
     
    import java.io.File;
    import java.util.ArrayList;
    import java.util.Collections;
     
    public class Test
    {
        public static void main(String [] args)
        {
        	ArrayList<File> liste = new ArrayList<File>();
        	liste.add(new File("fichier 1"));
        	liste.add(new File("fichier 2"));
        	(...)
        	Collections.sort(liste,new MonComparator());
     
        	for(File f:liste)
        	{
        		System.out.println(f);
        	}
        }
    }
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

Discussions similaires

  1. Trier par date des données d'une base mysql
    Par christophe_s46 dans le forum Requêtes
    Réponses: 3
    Dernier message: 31/08/2009, 11h18
  2. trier par nom une liste de fichier
    Par Anubis dans le forum Langage
    Réponses: 14
    Dernier message: 15/02/2008, 15h04
  3. Réponses: 5
    Dernier message: 03/01/2008, 16h07
  4. [Paradox] Trier par date
    Par Fabs dans le forum Bases de données
    Réponses: 5
    Dernier message: 08/11/2006, 19h41
  5. Réponses: 28
    Dernier message: 24/05/2006, 18h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo