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] Utilisation tiles (équivalent target en frame)


Sujet :

Struts 1 Java

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 86
    Par défaut [Tiles] Utilisation tiles (équivalent target en frame)
    Bonjour,
    je souhaiterais lorsque je clique sur mon lien dans news.jsp qu'il me dirige vers ajoutnews.jsp seulement je veux qu'il recharge seulement le body comme avec les frames avec la propriétés target.

    tiles-defs.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <tiles-definitions>
        <definition name="planindex" page="/layouts/conflayout.jsp">
        <put name="header" value="../menuhaut/menuhaut.jsp" />
        <put name="menu" value="../menugauche/menugauche.jsp" />
        <put name="body" value="../news/news.jsp" />
        <put name="footer" value="../menubas/footer.jsp" />
        </definition>
    </tiles-definitions>
    news.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
    <html>
        <head>
        </head>
        <body>
     
        <html:link forward="ajoutnews">test target</html:link>
     
        </body>
    </html>
    ajoutnews.jsp
    <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
    Ma page

    strutsconfig.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <global-forwards>
            <forward name="ajoutnews" path="ajoutnews.jsp"/>
     </global-forwards>

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Par défaut
    A ma connaissance les tiles ne sont pas fait pour recharger suelement une partie de la page. Il faut aller voir du coté de ajax ou des iframes

  3. #3
    Membre expérimenté Avatar de @ldehan
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 215
    Par défaut
    c'est impossible car bien que tu definisses des zones dans ton tiles-defs.xml, la page généré est bien une unique page html sans frame. tu ne peux donc pas recharger qu'une partie de la page.

    mais si toute tes pages sont sous le meme modele, le reste la page ne changera pas quand tu cliquera sur un lien. visuellement, seul le body aura changé.

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 86
    Par défaut
    Merci c bien ce que je pensais,
    Personnellement je ne vois pas trop l'utilité d'utilisé des titles pour l'instant, j'aimerais bien savoir dans quelques contextes il est intéressant de l'utiliser.


    Sinon je ne vois pas en quoi ajax pourrait me servir dans ce cas mais je suis pas expert en celui-ci non plus, je ne l'ai utilisé à mes souvenir que pour remplir des list dynamiquement avec htmlrequest.

    Pour finir il n'est donc possible de rafraichir qu'un titles, en regardant dans des forums et sur le pdf titles j'ai appris qu'il fallait que je créé la définition de la nouvelle page que je veux affiché sur tiles-def.xml ensuite je créé une page intermédiaire appelons là dans mon cas ajoutnews_conf.jsp puis je fais appel à la page dans celle-ci avec un
    <tiles:insert definition="ladef" flush="false"/>

    Est ce la seul solution?

  5. #5
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Il est possible d'utiliser Tiles avec une iframe pour le body, mais ce n'est pas simple à mettre en oeuvre.

  6. #6
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Par défaut
    Bonjours, pour donner mon avis pèle mèle à tout le monde :
    - les IFRAME sont à proscrire en HTML : ce n'est pas une bonne pratique (même si souvent ça peut dépanner )
    - Tiles sert à faire du templating, celà permet d'avoir des layout avec des composants réutilisable. C'est trés pratique dans le cas d'application web importante. Mais ne fonctionne pas du tout comme un system de frame
    - Les frame elles-même, comme les iframe sont à proscrire car ne sont pas des bonne pratique HTML.

    Hormis la question de l'intérêt de ne pas recharger la page (ce qui est le principe de base du web : un system basé sur une requête), on peut faire ce genre de chose de plusieurs manière :
    - 100% HTML avec des DIV que l'on cache/montre
    - AJAX : avec des framework super simple comme AjaxAnywhere ou AjaxTags on peut définir des zones ajax-able (pour Ajaxanywhere) ou des composant Ajax via des taglib (pour AjaxTags) qui permettent trés simplement de mettre à jour des portions de pages sans recharger toute la page. Bien sûre des centaines d'autres framework AJAX existent et permettant de faire beacoup plus.

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 86
    Par défaut
    Merci encore,
    j'ai testé la méthode décrite dans mon ancienne réponse mais mon tag insert ne me renvoit vers ajoutnews.jsp.

    tiles-defs.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <tiles-definitions>
    <definition name="planindex" page="/layouts/conflayout.jsp">
    <put name="header" value="../menuhaut/menuhaut.jsp" />
    <put name="menu" value="../menugauche/menugauche.jsp" />
    <put name="body" value="../news/news.jsp" />
    <put name="footer" value="../menubas/footer.jsp" />
    </definition>
    <definition name="adminnews" extends="planindex">
    		<put name="body" value="news/ajoutnews.jsp"/>
    	</definition>
    </tiles-definitions>
    news.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
    <html>
    <head>
    </head>
    <body>
     
    <html:link forward="ajoutnews">test target</html:link>
     
    </body>
    </html>
    ajout news_conf.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
    <tiles:insert definition="adminnews" flush="false"/>
    ajoutnews.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
    Ma page

    strutsconfig.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <global-forwards>
    <forward name="ajoutnews" path="ajoutnews_conf.jsp"/>
    </global-forwards>

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 86
    Par défaut
    merci woodway pour cette explication qui m'éclaircit plus sur le role de tiles.
    En claire pour une grosse appli: Tiles + Ajax(ou autre frameworks)
    J'avoue que je vais m'intéresser de plus pret à Ajax.

  9. #9
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Par défaut
    De rien romano2003.

    Moi j'utilise Tiles dans un grosse appli web et c'est vraiment trés pratique.

    Quand à AJAX, le problème étant bien entendue le support auprés des browser, si tu veut que ton site fonctionne sur un grand nombres de browser différent, fait trés attention au framework AJAX que tu choisit. de plus n'oublie pas qu'aucune réelle standardisation n'existe encore (une standardisation est en cours de création par le projet OpenAjax) et que les framework sont parfois orienté SPA (Single Page Application) et non web. De plus l'utilisation d'AJAX empêche tes pages d'être référencé dans les moteurs de recherche (ceux-ci sont capable de lire les liens mais pas lire les reqête XML).

    En gros : AJAX oui mais si c'est vraiment nécessaire et avec un framework adapté à tes besions.

  10. #10
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 86
    Par défaut
    ok,
    je suis entrain de tester les tiles en profondeur et comprend mieux ses avantages.

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/07/2012, 22h36
  2. utiliser Tiles dans JSF
    Par titawine dans le forum JSF
    Réponses: 0
    Dernier message: 10/04/2012, 00h09
  3. [Tiles]un Tile dans un autre
    Par Mayhem dans le forum Struts 1
    Réponses: 7
    Dernier message: 23/09/2006, 18h30
  4. Réponses: 1
    Dernier message: 12/09/2006, 08h13
  5. Utiliser MenuBar autre que dans (J)Frame
    Par Belegkarnil dans le forum AWT/Swing
    Réponses: 19
    Dernier message: 24/07/2006, 18h41

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