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 :

Problème intégration d'un fichier js dans un fichier jsp


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 17
    Points : 11
    Points
    11
    Par défaut Problème intégration d'un fichier js dans un fichier jsp
    Bonjour,

    Je vient de débuter dans le développement J2E et je souhaite inclure un fichier Javascript dans un fichier jsp de mon projet.
    Les deux fichiers sont dans le même dossier et le fichier js contient une fonction ultra basique (alert("test").

    le code source de ma page JSP est le 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    <%@ page pageEncoding="UTF-8" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8" />
    <title>Inscription</title>
     
    <%@include file="/WEB-INF/style/style.jsp"%>
    <script src="gestionInscription.js" type="text/javascript"></script>
    </head>
     
    <body>
     
    <jsp:include page="/WEB-INF/menuGauche/MenuGauche.jsp"/>
    <jsp:include page="/WEB-INF/menuHaut/MenuHaut.jsp"/>
     
    <div id="contenuPage">
     
    <p>Page d'inscription</p>
     
    <form name="formulaire" action="InscriptionValide.jsp">
     
    <select name="selection" onChange="afficheMessageOption()">
    <option value="1">1
    <option value="2">2
    <option value="3">3
    </select>
     
    </form> 
     
    <script>
    afficheMessageOption();
    </script>
     
    </div>
     
    </body>
    </html>

    et le contenu de ma page javascript:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function afficheMessageOption()
    {
     
    alert("TEST");
    }
    Comme on peut le voir la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <script src="gestionInscription.js" type="text/javascript"></script>
    inclut le fichier javascript dans un premier temps et la fonction afficheMessageOption est appelée plus tard durant l'éxécution du fichier JSP (elle est également appeler lorsque l'on change une valeur dans le formulaire).

    Le problème est que la page JSP s'affiche sans problème mais que l'éxécution de la fonction js ne se fait à aucun moment (ni à l'affichage de la page ni au changement d'une valeur dans le formulaire).

    Les chemins de mes deux fichiers à partir du webcontent sont les suivants :
    /WebContent/WEB-INF/pages/gestionInscription.js
    /WebContent/WEB-INF/pages/Inscription.jsp

    Par conséquent, est-ce que quelqu'un pourrait m'aider à résoudre mon problème ?

    Merci d'avance.

  2. #2
    Membre averti
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 014
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 014
    Points : 407
    Points
    407
    Billets dans le blog
    1
    Par défaut
    Moi souvent mon javascript ne marche pas après une modif, il faut réactualiser la page du navigateur, sinon c'est un problème de chemin.

  3. #3
    vinou92340
    Invité(e)
    Par défaut
    Tu devrais tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="WEB-INF/pages/gestionInscription.js" type="text/javascript"></script>
    A ta place je mettrais tout ce qui est js et jsp/html à la racine du webcontent dans des dossiers séparés (js, html,...). Souvent, il faut indiquer le lien en partant du dossier racine "webcontent'.

    Voila.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    En mettant à la racine du webcontent le souci c'est que du coup toutes mes pages sont accessibles directement par le navigateur. Ce qui du coup peut poser des problèmes de sécurité.

    En revanche l'appel à des fonctions js inclusent dans un fichier différent fonctionne avec la ligne suivante incluse dans les balises head:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <jsp:include page="/WEB-INF/pages/js/gestionInscription.jsp"/>
    Bien sur il faut créer le dossier js et le fichier jsp avec les fonctions js entourées avec les balises <script>.

    C'est une solution alternative mais j'aurais bien voulu pouvoir inclure des fichiers .js

  5. #5
    vinou92340
    Invité(e)
    Par défaut
    Et la ligne que je t ai mise au dessus ne passe pas dans la configuration de ton premier message ? En gros mettre le js et la jsp dans le meme repertoire pages situé dans "web-inf" mais en indiquant le chemin du fichier js en partant de la racine du dossier webcontent au lieu de mettre que le nom du fichier car situé dans le meme repertoire que la jsp

    Donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    <script src="WEB-INF/pages/gestionInscription.js" type="text/javascript"></script>
    Dernière modification par vinou92340 ; 22/12/2012 à 10h18.

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ce qui est dans WEB-INF n'est pas accessible depuis le navigateur, simplement. Met tes JS ailleurs.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    J'ai testé la ligne suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="WEB-INF/pages/gestionInscription.js" type="text/javascript"></script>
    Ça ne fonctionne pas.

    J'ai fait un test en créant un jsp et un js à la racine du dossier WebContent, en effectuant le même type d'appel la par contre cela fonctionne.

    Cependant, étant donné que je souhaite contrôler l'accès à mes pages en utilisant des servlets, la solution de tout mettre à la source du webcontent n'est pas adaptée pour des raisons évidentes.

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    oui mais tes ressources accessibles depuis le navigateur ne doivent pas se trouver dans WEB-INF/ tout simplement. Donc met ton .js ailleurs.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    J'ai suivi ton conseil, à savoir placer le js ailleurs. Je l'ai mit dans un dossier js qui est lui-même à la racine du webcontent.

    En l'intégrant à la page jsp grace à la ligne suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="js/gestionInscription.js" type="text/javascript"></script>
    Cela fonctionne bien. Après petit bémol, quand je saisie le chemin vers mon fichier js à partir du navigateur (http://localhost:8080/{NomDuProjet}/js/gestionInscription.js).
    Le navigateur affiche le contenu du fichier js (ce qui est normal vu que le fichier n'est plus dans WEB-INF). Or mon objectif est de le rendre utilisable par mon fichier jsp sans pour autant être lisible à partir d'un navigateur.

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Impossible puisque ton navigateur va demander ce fichier séparément

Discussions similaires

  1. Problème d'affichage dans un fichier suite à un dir>fichier.txt
    Par paix02200 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 20/08/2007, 12h53
  2. Réponses: 17
    Dernier message: 09/03/2007, 18h13
  3. Réponses: 4
    Dernier message: 19/02/2007, 18h58
  4. Réponses: 2
    Dernier message: 26/01/2007, 14h58
  5. Réponses: 15
    Dernier message: 04/01/2007, 08h47

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