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 :

[Tiles] Toujours d'actualité?


Sujet :

Struts 1 Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut [Tiles] Toujours d'actualité?
    Bonjour,

    Je cherche à tout prix un moyen de d'obtenir une mise en page classique du style un menu fixe et une zone de contenu qui change en fonction du menu selectionné.

    Grâce au forum j'ai appris qu'il fallait utiliser Tiles pour ce genre de choses, et j'ai suivi 2 tutoriels avec succès, cependant aucun n'aborde le changement de contenu de la zone centrale en fonction des liens sur lesquels on clique !
    Ce qui est quand même le minimum pour un site internet, alors je me demandais si Tiles etait toujours utilisé ou si je devais regarder ailleurs pour réaliser ca.

    merci pour vos réponses.

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 17
    Points : 20
    Points
    20
    Par défaut
    il y a struts-menu sinon qui est pas mal .

    tiles c pour faire des templates .

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    Tu sais si il permet d'avoir le squellete header-menu-body-footer et de ne faire changer que le body, en incluant une JSP par exemple?
    je vais sur leur site voir un peu

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 17
    Points : 20
    Points
    20
    Par défaut
    salut

    a part faire de frames je vois pas non.

    mais par exemple avec tiles:

    pages1 =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
     
    <tiles:insert page="/pages/tiles-layout/template.jsp" flush="true">
      <tiles:put name="title"  value="Tiles exemple 1" />
      <tiles:put name="header" value="/pages/tiles-component/header.jsp" />
      <tiles:put name="footer" value="/pages/tiles-component/footer.jsp" />
      <tiles:put name="menu"   value="/pages/tiles-component/menu.jsp" />
      <tiles:put name="body"   value="/pages/tiles-component/body.jsp" />
    </tiles:insert>

    pages2 =

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <tiles:insert page="/pages/tiles-layout/template.jsp" flush="true">
      <tiles:put name="title"  value="Tiles exemple 1" />
      <tiles:put name="header" value="/pages/tiles-component/header.jsp" />
      <tiles:put name="footer" value="/pages/tiles-component/footer.jsp" />
      <tiles:put name="menu"   value="/pages/tiles-component/menu.jsp" />
      <tiles:put name="body"   value="/pages/tiles-component/bodyFrigo.jsp" />
    </tiles:insert>
    je ne change que les body .

    sinon je refais ue template pour changer de style .

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    merci de me mettre sur la voie,

    donc si j'ai bien compris, à chaque page que tu rajoute, tu crée 2 JSP : une dans laquelle tu tape ce code (accueil-tiles.jsp) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <tiles:insert page="/pages/tiles-layout/template.jsp" flush="true"> 
    <tiles:put name="title" value="Tiles exemple 1" /> 
    <tiles:put name="header" value="/pages/tiles-component/header.jsp" /> 
    <tiles:put name="footer" value="/pages/tiles-component/footer.jsp" /> 
    <tiles:put name="menu" value="/pages/tiles-component/menu.jsp" /> 
    <tiles:put name="body" value="/pages/tiles-component/accueil.jsp" /> 
    </tiles:insert>
    puis tu crée la accueil.jsp dans laquelle tu ne met aucune balise d'entete html (pas de head, pas de body) car elles sont déjà dans le template c'est ca?

    puis lorsque tu veux retourner à l'accueil tu appelle accueil-tiles.jsp direct...

    mais le problème avec cette architecture, c'est que si tu désire supprimer le footer, tu dois le faire dans toutes tes pages manuellement non?

  6. #6
    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
    Citation Envoyé par vallica

    mais le problème avec cette architecture, c'est que si tu désire supprimer le footer, tu dois le faire dans toutes tes pages manuellement non?
    Bonjour,

    pour pallier à ce problème, tu peux tout déclarer dans un fichier xml.

    http://struts.apache.org/struts-tiles/examples.html

    Eric

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    Je m'en sors pas !

    En fait il me manque un élement, c'est comment dire à une page d'utiliser tel ou tel layout, je m'explique.

    Voilà ce que j'ai fait :

    mainLayout.jsp
    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
    <%@ taglib 
    uri="/WEB-INF/struts-tiles.tld" 
    prefix="tiles" %>
    <html>
    <head>
      <title>
        <tiles:getAsString name="title"/>
      </title>
    </head>
     
    <body>
      <tiles:insert attribute="header"/>
     
      <tiles:insert attribute="body"/>
     
      <tiles:insert attribute="footer"/>
    </body>
    </html>
    tiles-defs.xml
    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
    <?xml version="1.0"?>
     
    <!DOCTYPE struts-config PUBLIC
      "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
      "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">
     
    <tiles-definitions>
     
      <!-- Main Layout -->
      <definition name="main.layout" path="/gui/mainLayout.jsp">
         <put name="title"  value=""/>
         <put name="header" value="/gui/header.jsp"/>
         <put name="body"   value=""/>
         <put name="footer" value="/gui/footer.jsp" />
      </definition>
     
      <!-- Search Page -->
      <definition name="search.page" extends="main.layout">
         <put name="title"  value="Search Page"/>
         <put name="body"   value="/gui/search.jsp"/>
      </definition>
     
    </tiles-definitions>
    Les header.jsp, footer.jsp n'on pas d'importance je pense.

    Maintenant si je crée une page search.jsp, et que dedans je lui met un simple texte "rechercher", comment faire pour dire à cette page d'utiliser la définition search.page que j'ai faite dans tiles-defs.xml ?

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Points : 514
    Points
    514
    Par défaut
    Crée une page index.jsp

    index.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <body>
       <tiles:insert definition="search.page" flush="false"/>
    </body>
    Lorque tu appeleras index.jsp, elle utilisera la definition search.page pour remplir mainLayout.jsp

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    super merci beaucoup !

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/11/2009, 15h33
  2. Le matériel pont ou bridge, toujours d'actualité
    Par Lucas Panny dans le forum Développement
    Réponses: 4
    Dernier message: 23/08/2009, 15h12
  3. vbScript toujours d'actualité ?
    Par hesoebius dans le forum Général Dotnet
    Réponses: 7
    Dernier message: 29/10/2008, 10h21
  4. iFrames toujours d'actualité ?
    Par Lolie11 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 29/05/2007, 15h35

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