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 :

Include dynamique avec JSP


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2011
    Messages : 43
    Par défaut Include dynamique avec JSP
    Bonjour,

    Je travaille avec les jsp. Pour éviter la redondance du code et une anarchie dans le projet, je fais des includes. Seulement, j'ai l'impression que l'on peut pas charger des pages dynamiquement, telle que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String nomDeLaPage="index.jsp"
     
    <jsp:include page="<%=nomDeLaPage%>" />
    Du coup, je vois pas trop comment faire, à moins de bourer la page jsp avec des if :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(request.getParameter("page").equals("index.jsp")
       <jsp:include page="index.jsp" />
    else if ....
    Si quelqu'un a une idée, ca serait cool

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 104
    Par défaut
    Comment t'y prends tu pour récupérer ta String nomDeLaPage.
    Tu la places dans la request depuis une servlet ?
    Tu la déclares depuis ta JSP via scriptlet ?

    En tout cas, si tu définies la String pageAInclure via une "déclaration scriptlet" comme celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <jsp:declaration> 
       String pageAInclure = "inclu.jsp"; 
    </jsp:declaration>
    Et que tu fais ton include de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <jsp:include page="<%=pageAInclure %>" />
    Cela fonctionne.
    D'où ma question, où est-ce que tu déclares nomDeLaPage ?

    On notera aussi que tu ne peux pas écrire du code java dans une JSP hors des balises prévues pour comme tu le fais (aussi bien pour ta déclaration de nomDeLaPage que pour le if/else.


    J'ajouterai que si tu as du code java (scriptlet, declaration, expression, EL, jstl...) dans la page que tu inclus, il ne sera pas exécuté!

    Deux solutions:
    1) Passer les paramètres utilisés dans la page incluse de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <jsp:include page="pageAInclure.jsp" >
       <jsp:param name="paramètre" value="valeur" />
    </jsp:include>
    (Ce qui peut être lourd si tu as beaucoup de paramètres)

    2) Utiliser un 'include' un peu différent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ include file="pageAInclure.jsp" %>
    La différence est que la deuxième solution va littérarelement copier le contenu de pageAInclure.jsp et exécuter le code dans le même cycle que ta page "principale".

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2011
    Messages : 43
    Par défaut
    Tout d'abord merci de ta réponse !

    Effectivement le code java doit êtr inséré entre balises <% %>, je l'ai pas mis dans mon exemple mais je le sais.

    J'ajouterai que si tu as du code java (scriptlet, declaration, expression, EL, jstl...) dans la page que tu inclus, il ne sera pas exécuté!
    Je ne suis pas d'accord, j'ai fait un include basique dans mon code, et dans le fichier inclus je fais un if(request.getParameter("page".equals("....")) et ca marche nickel donc pas de souci de ce côté là.

    En fait, mon besoin vient du fait qu'une servlet m'envoi le nom de la page à afficher, je récupère ce nom, et je veux l'inclure dynamiquement dans un appel jsp:include.

    Autrement dit, je veux inclure une page jsp dans une autre, mais sans savoir à la compilation quelle est cette page.

    Tu me parles de la méthode include file mais elle ne marche pas dynamiquement, comme je le souhaiterais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <% String page = request.getPar...... %>
    <%@ include file="<%=page%>" %>
    Concernant cette solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <jsp:declaration> 
       String pageAInclure = "inclu.jsp"; 
    </jsp:declaration>
    Elle non plus ne marche pas dynamiquement, puisque je ne peux pas faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <jsp:declaration> 
       String pageAInclure = <%=request.getParameter("page")%> 
    </jsp:declaration>
    Je cherche vraiment à recevoir en paramètre le nom de la page qui doit être inclus, puis à l'inclure.

    Merci quand même !

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Je veux bien que tu reçoives le nom de la page à inclure dans ta servlet, mais il faut être sûr que tu auras toujours un nom valide.
    Au niveau de la page, si tu utilises <jsp:include>, la page doit exister.
    De ce que je comprends, il faudra traiter une liste de valeurs possibles pour pouvoir, le cas échéant, prendre une valeur par défaut à inclure (quitte à ce que ce soit une page blanche).

    Bon, je ne comprends pas trop ton besoin d'include variable, j'ai l'impression que c'est une mauvaise utilisation des servlets et/ou jsp...

    Peux-tu préciser la problématique ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2011
    Messages : 43
    Par défaut
    Ca ne me parait pas compliqué à comprendre :

    1/ Je reçois via session ou paramètre le nom de la jsp à afficher

    2/ J'inclus ce nom dans un include

    Exemple
    :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <% String nom = request.getParameter("nomPage");%>
     
    <jsp:include page="web/pages/"<%=nom%>.jsp>
    Je peux pas être plus clair, après c'est peut être pas la bonne façon de faire, c'est pourquoi je demande de l'aide !

  6. #6
    Membre à l'essai
    Profil pro
    ingéneiur
    Inscrit en
    Février 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ingéneiur

    Informations forums :
    Inscription : Février 2010
    Messages : 4
    Par défaut Recharge dynamique des pages jsp
    Bonjour tt le monde,

    Quelqu'un a une idée comment peut-on charger des pages jsp dynamiquement à l’intérieur d'une page jsp ? ?????????????
    merci d'avance

Discussions similaires

  1. Include dynamique avec JSP
    Par zaitsev dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 28/02/2012, 17h27
  2. site web dynamique avec jsp
    Par open_source dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 28/12/2007, 23h06
  3. include dynamique avec struts
    Par LeXo dans le forum Struts 1
    Réponses: 2
    Dernier message: 26/10/2007, 11h11
  4. problème de listes déroulantes liées dynamiques avec jsp
    Par solfegepro dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 09/08/2007, 17h11
  5. Créer des noms de variables dynamiquement avec JSP
    Par Zakapatul dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 26/02/2007, 14h24

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