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

Struts 1 Java Discussion :

comment peut on éviter la duplication des pages jsp avec tiles


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 70
    Par défaut comment peut on éviter la duplication des pages jsp avec tiles
    Bonjour,

    j'utilise struts dans le cadre d'un projet avec Tiles pour la composition des pages (en tete, menu, corps, ...)

    Pour l'instant, on a un fichier de config (tiles-config.xml), une jsp de mise en page (template.jsp) Cette dernière fait appele à d'autres jsp statiques (header.jsp, footer.jsp, ...) puis a différentes pages jsp qui constituent le corps.

    Le problème que je rencontre est lié à la duplication des pages jsp:
    en effet, si l'utilisateur tape http://server/toto.jsp, il faut créer une page toto.jsp qui fait appele à Tiles pour composer une page avec header.jsp, footer.jsp et une autre page toto-body.jsp
    Donc dans toto.jsp, il n'y a rien d'autre qu'une redirection vers tiles

    je voudrais savoir si il n'y a pas moyen de remplacer toto.jsp par un filtre qui intercepte l'url, ou une déclaration dans le stuts-config.xml ou une autre solution.

    Je vous remercie et je compte sur vous pour me débloquer.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Avril 2007
    Messages : 123
    Par défaut
    Normalement l'utilisateur n'a pas a saisir directement l'adresse de la jsp, mais plutot : http://server/toto.do

    ensuite dans ton struts-config tu fais un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <action path="/toto" type="org.apache.struts.actions.ForwardAction" 
    			parameter=".layout.toto"/>
    .layout.toto étant la balise tiles...

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 70
    Par défaut
    Merci Cronys,
    mais la réponse que tu viens de donner, n'évite pas pas la duplication des pages jsp. car si layout.toto est la balise de tiles, il faut quand même qu'il existe la page body.jsp (le corps à inclure). Donc il y aura toujours duplication de la page.

    Si tu as une autre solution, je suis preneur.
    Merci!

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Avril 2007
    Messages : 123
    Par défaut
    Oui mais le body.jsp peut etre général a toutes tes jsp. c'est le principe de Tiles, je ne vois pas trop ce que tu veux faire

  5. #5
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Citation Envoyé par Cronycs
    Oui mais le body.jsp peut etre général a toutes tes jsp. c'est le principe de Tiles, je ne vois pas trop ce que tu veux faire
    Ca m'etonnerait beaucoup ça !

    Citation Envoyé par enok37
    je voudrais savoir si il n'y a pas moyen de remplacer toto.jsp par un filtre qui intercepte l'url, ou une déclaration dans le stuts-config.xml ou une autre solution.
    Si, il y'a un moyen (théoriquement) mais j'ai jamais reussi à le faire fonctionner ! Il s'agit d'indiquer l'url d'une définition dans le fichiers tiles-config.xml, on évite donc de créer le pages du genre toto.jsp qui ne font qu'assembles d'autres pages et définitions.
    Mais il faudrait remplacer la Front Servlet de Struts par celle de Tiles, et dieu seul sait pourquoi la documentation de Tiles est du bidon, donc bonjour les dégats !

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 70
    Par défaut
    Ce que je veux faire c'est éviter d'avoir pour une page jsp deux pages. Je m'explique :
    avec tiles, il faut défenir une page jsp qui va inclure les autres pages statiques (header, menu et footer). Donc pour chaque page ( ici body1 par ex) , il faut la page elle-même (body1.jsp) et une autre page jsp (body1Tiles.jsp par ex ) qui va inclure toutes les éléments statiques sous cette forme:

    <tiles:insert page="/templateAdmin.jsp" flush="true">
    <tiles:put name="title" value="Tiles exemple 1" />
    <tiles:put name="header" value="/header.jsp" />
    <tiles:put name="footer" value="/footer.jsp" />
    <tiles:put name="menu" value="/menu.jsp" />
    <tiles:put name="body" value="/body1.jsp" />
    </tiles:insert>

    Est-ce que je me suis fait comprendre?

  7. #7
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Oui chef ! C'est limpide !
    Maintenant, est ce que moi je me suis fait comprendre ? Parceque dan mon post précédent, je croyais avoir répondu à ta question, mais bon, je vais reformuler :
    Tu peux éviter les fichiers du genre tot.jsp et toto-body.jsp dont tu parles : tu ne gardes que tot-body.jsp, et tu remplaces tot.jsp par une définition dans tiles-config.xml, disons page.toto.

    Ensuite, si tu veux accéder à cette page, tu utilises page.tot (le nom de la définition) à la place de toto.jsp (le nom du fichier) et le tour est joué !

    Sauf que pour en arriver là, il faut remplacer la Servle de Struts par celle de Tiles, et après avoir creusé la dedans pendant plus d'une semaine, je n'y étais jamis arrivé ! Donc théoriquement c'est faisable, mais pratiquement, bonne chance !

Discussions similaires

  1. Problème des pages JSP avec JBoss
    Par ensatTetouan dans le forum Wildfly/JBoss
    Réponses: 0
    Dernier message: 11/03/2012, 05h25
  2. Réponses: 1
    Dernier message: 08/08/2007, 13h22
  3. [JDOM] peut-on créer des page html avec JDom
    Par med_anis_dk dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 11/05/2007, 15h39
  4. Réponses: 2
    Dernier message: 22/08/2006, 20h57
  5. Probleme etat (duplication des pages anormales)
    Par dynexd dans le forum Access
    Réponses: 1
    Dernier message: 09/04/2006, 18h03

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