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 :

Réaliser un include jsp depuis une servlet


Sujet :

Servlets/JSP Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Réaliser un include jsp depuis une servlet
    Bonjour à tous,

    Je suis en train de terminer une plateforme jsp/servlet.
    Tout fonctionne bien, j'en suis maintenant au stade d'intégration sur le plan graphique.

    Mon problème est le suivant:

    je fais appel (de la même manière qu'en php) à la fonction include pour intégrer mon top.jsp, et bottom.jsp dans mes fichiers jsp. Ca, ça fonctionne à merveille.
    Dans mes jsp mon include se fait ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ include file="top_stat.jsp" %>
    Mais sur mon application, j'ai une trentaine de pages qui sont générées directement par les servlet en questions (confirmations d'insertion dans bdd et tout ça). J'ai alors essayé d'intégrer ma belle balise include avec les fichiers correspondants comme fait précédement, mais là "OS", ça ne fonctionne pas.
    Dans mes servlets mon appel se fait donc comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     out.println("<jsp:include file=\"top_stat.jsp\" %>");
    Ma question est la suivante: comment réaliser à peu près proprement cet include pour que mes pages générées soient elles aussi joliement habillées?

    PS: la servlet génère cependant bien le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <jsp:include file="top_stat.jsp" %>
    Cependant, il n'apparait que dans le code source de la page générée, comme si le code JSP n'avait pas été analysé à nouveau, ou que le fichier top_stat.jsp n'avait pas été trouvé...(il reste cependant accéssible au même chemin par la barre d'adresse que celui spécifié dans le code)

    Une petite aide serait fort aimable! (car j'ai arpenté le Web avec mon ami goole sans franc succès)

    Merci beaucoup

    kerbernic

  2. #2
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Normal que ta recherche n'ait rien donnée car on ne tente pas de faire les choses de cette manière habituellement... on inclut pas le résultat d'une servlet au sein d'une JSP car une servlet renvoie une page (HTML ou autre) à elle toute seule, avec l'en-tête et les paramètres non visibles dans un navigateur. Egalement, une JSP devient une servlet, une fois compilée par le moteur de servlets.

    Donc solutions, soit tu mets des frames mais ça ne correspondra probablement pas suffisamment à ton besoin, soit tu intègres dans tes servlets, le code HTML qui manque pour faire joli, soit tu refais tout comme il faut en utilisant un framework du style Struts, JSF, Spring mais à ce moment-là bonjour le boulot

    La deuxième solution me paraît la plus appropriée dans ton cas mais ça reste quand même super moyen et peut-être fastidieux...

    Il aurait fallu mieux étudier les possiblités au départ à mon avis , maintenant c'est un peu tard. Sauf erreur, t'as du boulot en perspective

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    out.println("<jsp:include file=\"top_stat.jsp\" %>");
    Je doute que cela fonctionne :
    1) j'imagine que comme on est déjà dans une servlet, la balise ne sera pas évaluée puisque out correspond au flux de sortie
    2) quoi qu'il en soit, ce serait plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <jsp:include file=\"top_stat.jsp\" />
    Va voir du côté des filtres de servlet, éventuellement de SiteMesh.

    Eric

  4. #4
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Cela ne peut pas marcher dans l'état, contrairement à php les jsp ne sont pas interpretées mais compilées puis executées. Et surtout le résultat d'une servlet n'est pas recompilée et réexecutée. Donc le code en sortie d'une servlet doit être directement interpretable par le browser.

    Mais tout n'est pas perdu, en effet dans la servlet tu peux ouvrir un inputstream sur ton server charger un fichier et inclure tel quel le resultat de ta jsp.

    Genre en passant par HttpClient puis getInputStream.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Mercu beaucoup
    Merci beaucoup pour vos réponses, je tente la derniere solution de zekey.

    Je vous tiens au courant

  6. #6
    Membre éclairé
    Avatar de Eric Berger
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2002
    Messages : 346
    Points : 663
    Points
    663
    Par défaut
    Bien conscient que ma réponse arrive un peu tard, je poste tout de même, ça servira peut-être à d'autres.

    Confronté au même problème, j'ai trouvé la méthode suivante en farfouillant sur le net:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        public void loadJSP(String url,HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException  {
            if (url == null) { return; }
            if (url.charAt(0) != '/') { url = '/' + url; }
            
            ServletContext sc = getServletContext();
            RequestDispatcher rd = sc.getRequestDispatcher(url);
            rd.forward(req,resp);
    }
    A ajouter au servlet depuis lequel on souhaite inclure le JSP. On peut ensuite inclure des JSP à travers cette méthode.

    J'ai testé, ça marche nickel!

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Points : 1 151
    Points
    1 151
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rd.include(request, response);

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/07/2009, 18h55
  2. Réponses: 11
    Dernier message: 23/04/2009, 16h18
  3. Tableau de données (jsp) depuis une servlet
    Par gnaoui_9999 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 29/06/2007, 14h54
  4. Transfert d'un objet d'une JSP vers une Servlet
    Par biohazard dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 21/06/2004, 16h51
  5. [debutant]renvoyer sur une jsp depuis une servlet
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 23/03/2004, 11h55

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