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 :

[DisplayTag] configurer le chemin du displaytag.properties


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut [DisplayTag] configurer le chemin du displaytag.properties
    Bonjour!

    Petit problème technique auquel j'ai décidé de m'attaquer plus sérieusement aujourd'hui
    J'utilise la lib displaytag, et donc, pour personnaliser mes tableaux, j'ai redéfini le fichier displaytag.properties.
    Mon souci est que théoriquement il faut mettre ce fichier dans le WEB-INF/classes.
    Mais moi je souhaite que celui-ci (pour des questions de packaging) soit dans WEB-INF/classes/properties. Càd dans le dossier avec tous les autres fichiers properties )
    Mais si je le met dans ce dossier comment paramétrer quoi pour que ce fichier soit pris en compte?

    Je bosse avec Eclipse lomboz 3.1.1, mon serveur est le serveur Tomcat 5.5, et le jdk est le 1.4.2 update 8.
    Tout marche nickel avec le bon fichier lorsque je le place sous WEB-INF/classes, mais ce dernier n'est évidemment pas pris en compte lorsque il est sous WEB-INF/classes/properties...


    Quelqu'un une idée?

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Par défaut
    oui, c'est possible... je l'ai fait... il faut utiliser la méthode setUserProperties
    voici globalement la technique :
    1) créer une servlet d'initialisation InitServlet avec load-on-startup=1 dans le fichier web.xml
    2) InitServlet extends HttpServlet
    3) méthode init() de la class :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Properties p = ...; // mettre dans p le fichier displaytag.properties à l'emplacement que tu veux
    org.displaytag.properties.TableProperties.setUserProperties(p);
    et zouuuuuu le tour est joué.
    L'avantage de cette méthode, c'est que tu peux mettre ce fichier de config ailleurs que dans le classpath... comme par exemple dans WEB-INF/config... avec les autres fichiers de config de l'appli, et mettre en paramètre de la servlet dans le fichier web.xml l'emplacement du fichier properties.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut
    Properties p = ...; // mettre dans p le fichier displaytag.properties à l'emplacement que tu veux
    ... Est-il possible de créer un new properties en parcourant l'arborescence en relatif (je veux dire de pas spécifier le chemin absolu du fichier.... )

    Parce que en fait, je ne sais pas sous quel sys d'exploitation sera mon serveur => le chemin absolu je ne le connais donc pas....

    Parce que apparemment pour créer mon Properties, je dois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Propertie p = new Properties();
    InputStream inStream = new InputStream (?????);
    p.load(inStream )
    et je ne vois pas comment faire...
    Je voulais faire un truc comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Propertie p = new Properties();
    File file = new File(path);
    FileInputStream inStream = null; 
    try {
    	inStream = new FileInputStream(file);
    } catch (Exception e) {
    	// gestion de l'exception
    }
    p.load(inStream);
    Mais le pb c que "path" (en violet dans le code) est normalement un chemin absolu.....

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Par défaut
    si ton fichier est dans le classpath, tu peux utiliser la méthode getResourceAsStream

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Properties p = new Properties();
    InputStream is = TaClass.class.getResourceAsStream(path);
    if (is != null) {
      p.load(is);
      is.close();
    }

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut
    J'ai fait un test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    File file = new File("fileName");
    String abspath = file.getAbsolutePath();
    System.out.println(abspath );
    abspath vaut la valeur suivante :
    C:\Document and Settings\utilisateur\Desktop\fileName
    Donc non, mon fichier ne se trouve pas dans le classpath....
    Comment puis-je donc faire?

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Par défaut
    Où as-tu mis le fichier displaytag.properties?
    [edit]
    dans ton 1er message, tu as écris que le fichier était dans le répertoire "properties"....
    as-tu essayé dans la servlet d'initialisation d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream is = TaClass.class.getResourceAsStream("/properties/displaytag.properties");
    normalement, ça devrait fonctionner, non?
    [/edit]

Discussions similaires

  1. Configurer un chemin de répertoire
    Par Sceptique dans le forum Format d'échange (XML, JSON...)
    Réponses: 11
    Dernier message: 19/05/2013, 21h05
  2. Configurer un chemin ou mettre une BDD pendant l’installation
    Par kika10 dans le forum Composants VCL
    Réponses: 0
    Dernier message: 05/05/2011, 18h11
  3. Réponses: 2
    Dernier message: 22/12/2009, 16h10
  4. [DisplayTag] probleme d'export avec displaytag
    Par D.Mounir dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 05/05/2007, 14h24
  5. Configurer le chemin par défaut de recherche des images (balise <img src>)
    Par DJ Caësar 9114 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 06/03/2007, 08h00

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