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

Tapestry Java Discussion :

Récupérer le chemin du context root


Sujet :

Tapestry Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Par défaut Récupérer le chemin du context root
    Bonjour,

    Je voudrais savoir comment on fait pour accéder au root context de l'application web (répertoire webapp ou webcontent) dans une page en Tapestry 5.0.18.

    Dans le .tml il suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="${asset:context:images/myFile.jpg}" />
    Dans le .java c'est quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    @Inject
    @Path("context:images/myFile.jpg")
    private Asset myImg;
    Mais dans mon cas je veux enregistrer un fichier dans un répertoire de ce root context (fichier provenant d'un formulaire). Je ne voit pas comment récupérer le chemin du répertoire.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Par défaut
    Tu crées un objet Request (org.apache.tapestry5.services.Request) qui dispose d'une fonction getContextPath() qui te renverra ce dont tu as besoin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    private Request _request;
     
    @SetupRender
    public void ConstruitEcran() {
     
    	System.out.println(_request.getContextPath());
    }

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Par défaut
    Merci pour ta réponse.

    J'ai déjà essayé avec la request mais ca ne suffit pas. Si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File folder = new File(request.getContextPath() + "/src/main/webapp/uploadedImages");
    Je me retrouve avec le chemin : /webproject/src/main/webapp/uploadedImages qui n'existe pas sur le system de fichiers.

    Il me faudrait un chemin relatif à webapp... ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Par défaut
    Salut,

    comment comptes tu publier ton application ?
    là tu es en mode développement ?

    Parce que, à mon avis, tu vas créér un .war que tu vas déployer dans un conteneur de servlet type tomcat...
    Du coup, ton répertoire "/src/main/webapp" n'existera pas sur cette machine mais plus sûrement un quelquechose du genre

    ---> webproject
    ---> WEB-INF
    ---> META-INF
    ---> assets
    ---> *.tml

    donc cette fonction, elle, te ramène la valeur en mode packagé

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Par défaut
    Effectivement mon application sera publiée avec un .war et tomcat.

    Mais j'ai le même problème avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File folder = new File(request.getContextPath() + "/uploadedImages");
    J'obtient : /webproject/uploadedImages/

    Du coups quand j'exécute l'application sous tomcat j'ai un :

    Unable to write uploaded file content to /webproject/uploadedImages/myFile.jpg

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Par défaut
    En fait il faudrait que les fichiers uploadés soient enregistrés dans un répertoire spécifique du serveur et non dans le répertoire de l'application puisque celle-ci est un .war ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer le nom du contexte d'une webapp
    Par citrouille86 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 09/09/2005, 23h59
  2. Récupérer le chemin complet de l'appli
    Par alainpeniche dans le forum Windows
    Réponses: 3
    Dernier message: 10/08/2005, 14h03
  3. [Sources]Récupérer le chemin d'un objet OLE
    Par Mr.Gus dans le forum Contribuez
    Réponses: 9
    Dernier message: 12/05/2005, 10h11
  4. Récupérer le chemin de l'alias a partir du database
    Par rippoz dans le forum Bases de données
    Réponses: 2
    Dernier message: 02/08/2004, 14h59
  5. Récupérer le chemin d'accés du PFile.
    Par Laurent Dardenne dans le forum Administration
    Réponses: 7
    Dernier message: 03/02/2004, 17h21

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