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 :

Struts creation d'un menu et de body dynamique


Sujet :

Struts 1 Java

  1. #1
    Membre habitué
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Par défaut Struts creation d'un menu et de body dynamique
    Bonjour, je voudrais savoir comment faire pour creer un menu avec struts.
    çad que je voudrais pouvoir cliquer dans le menu et que la page liée s'ouvre dans la partie body et pareil si je clique sur un autre lien du menu.
    J'ai utilisé strut avec <tiles:insert ect...
    Mais je n'arrive pas à changer de body.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Par défaut
    Peux-tu poster le contenu de ton tiles-def.xml et de ta JSP "générale" ?

  3. #3
    Membre habitué
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Par défaut
    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE tiles-definitions PUBLIC
    "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
    "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">




    <tiles-definitions>

    <definition name=".mainLayout" path="/tiles/template.jsp">
    <put name="header" value="/tiles/header.jsp" />
    <put name="menu" value="/tiles/menu.jsp" />
    <put name="body" value="/tiles/body.jsp" />
    <put name="footer" value="/tiles/footer.jsp" />
    </definition>

    <definition name="movie" extends=".mainLayout">
    <put name="title" value="Movie Title" />
    <put name="body" value="/view/Movie.jsp" />
    </definition>

    <definition name="loginform" extends=".mainLayout">
    <put name="title" value="Login Title" />
    <put name="body" value="/view/LoginForm.jsp" />
    </definition>


    </tiles-definitions>


    Page de test nommée Exemple

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Example Page</title>
    </head>
    <body>

    <h1>Example Page</h1>

    <tiles:insert definition=".mainLayout" page="/tiles/template.jsp"></tiles:insert>

    </body>
    </html>


    Voici mon menu.jsp


    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
    </head>
    <body>

    <h1>Menu Page</h1>

    <%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>

    <table cellspacing="2" cellpadding="2" border="0" width="15%">
    <tr>
    <td bgcolor="#336699">Test menu</td>
    </tr>
    <tr>
    <td align="right"><a href="<%=request.getContextPath()%>/view/games.jsp" >Games</a></td>
    </tr>
    <tr>
    <td align="right"><a href="<%=request.getContextPath()%>/view/other.jsp" >Other</a></td>
    </tr>
    <tr>
    <td align="right"><a href="<%=request.getContextPath()%>/index.jsp" >Menu 3</a></td>
    </tr>
    </table>

    </body>
    </html>


    Et le fichier template.jsp


    <html>
    <head>
    <title><tiles:getAsString name="title" ignore="true"/></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>titre</title>
    </head>
    <body>
    <table border="1" cellpadding="0" cellspacing="0" width="100%" bordercolor="#000000" bgcolor="#E7FDFE">
    <tr>
    <td width="100%" colspan="2" valign="top"><tiles:insert attribute="header"/></td>
    </tr>
    <tr>
    <td width="23%" height="1000"><tiles:insert attribute="menu"/></td>
    <td width="77%" valign="top" valign="top"><tiles:insert attribute="body"/></td>
    </tr>
    <tr>
    <td width="100%" colspan="2" valign="top"><tiles:insert attribute="footer"/></td>
    </tr>
    </table>

    </body>
    </html>

    Et je veux que quand je clique sur dans un lien du menu il m'ouvre la page dans la partie body aulieu de me l'ouvrir totalement.
    Je voudrais pouvoir naviguer à partir de mon menu et toutes les pages s'ouvres dans la partie body.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Par défaut
    Tout d'abord, ce serait cool si tu éditais ton message pour mettre ton code dans des balise "CODE", qui facilitent vraiment la lecture.

    Ensuite, es-tu sûr d'avoir bien compris le principe des tiles ? Ils ne permettent pas de charger partiellement une page, mais de paramétrer les différents "composants" d'une page. Mais ce ne change rien au fait que tu dois recharger ta page complètement.

    Si vraiment tu as besoin de ne recharger qu'une partie de ta page, passe par des frames / iframe (non standards, tous les deux), ou peut-être que les librairies pour "portail" t'aideront (n'y connais rien là-dedans).

    Tu as aussi la possibilité de passer par Ajax, mais ca me semble peu approprié à ton problème.

    Tiles te permet de définir le contenu de tes pages, mais pas de rendre ces différents contenus indépendants. Donc, soit tu recharges toute ta page (comportement normal et conseillé, mais probablement avec du code supplémentaire à écrire), soit tu restes sur ton idée de recharger seulement une partie de la page, et dans ce cas cf. ce que j'ai dit au-dessus, et je te souhaite bon courage.

  5. #5
    Membre habitué
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Par défaut
    Ok merci pour l'info sur la balise je ne savais pas mais, je me suis mal exprimer, quand je dis totalement, je veux que ma page se charge totalement mais seulement dans la partie body, et pas comme si je la lancait directement en rentrant dans l'url /games.jsp par exemple .
    Est ce que tu vois ce que je veux dire?
    je veux que ma page s'affiche dans la partie body et que chaque fois que je clique sur un lien la page liée s'ouvre dans la partie body, comme un site normal.

    C'est à dire on a la partie navigation et le contenu des pages s'ouvrent dans la partie reservée donc body.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Par défaut
    Non, je ne comprens pas bien.
    Qu'est-ce que tu appelles la partie "body" ? Une frame ? Une partie de ta page ?

    A te lire, je pense que j'avais bien compris ton souhait, et que donc ma réponse est toujours valable.

    je veux que ma page se charge totalement mais seulement dans la partie body
    Si tu m'expliquais précisément cette phrase, je crois qu'on se comprendrait mieux.

  7. #7
    Membre habitué
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Par défaut
    En fait je veux un menu à gauche et pas à droite, un body c'est à dire la zone qui est reservée à mes pages web.
    Car dans struts si on veux assembler et faire une page modele il nous faut header.jsp,menu.jsp, body.jsp, footer.jsp.
    Et ensuite on peut inserer la page modele dans nos pages web, pour avoir le modele appliquer à nos pages.
    Et ainsi avoir un site "normale" avec navigation ect...

    Et quand je dis totalement , je veux que le body.jsp par defaut soit remplacer par la page games.jsp par exemple

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Par défaut
    Bon, je comprends un peu mieux.
    C'est donc bien ce que j'avais compris au départ.
    Eh bien, je suis désolé, mais il te faut (pour faire au plus simple en tout cas) recharger ta page intégralement (en appelant une autre page, constituée elle de "content" différents).
    Si cette solution ne te convient pas, explique nous concrètement ce qui t'oblige à recharger seulement une partie de ta page (mais apparemment ce n'est pas ce que tu cherches à faire), ou ce qui te gêne exactement. Peut-être simplement ne comprends-tu pas le paramétrage de tes pages dans tiles ?

    En fait je veux un menu à gauche et pas à droite
    C'est bien d'avoir des convictions politiques affirmées (edit : pas très drôle en fait, fatigué moi...)

  9. #9
    Membre habitué
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Par défaut
    Tu veux dire par la que je crée une page cat1.jsp qui contient l'insert definition de la page que je veux afficher dans le body par exemple
    <definition name="movie" extends=".mainLayout">
    <put name="title" value="Movie Title" />
    <put name="body" value="/view/Movie.jsp" />
    </definition>

    et que j'appelle du menu de l'index la page cat1.jsp c ca?

  10. #10
    Membre habitué
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Par défaut
    Je veux faire comme l'image du bas tout en bas avec menu, body ect..

    Et elle est pas mal ta blague sur gauche, droite

  11. #11
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Par défaut
    Citation Envoyé par WINDFLY
    Et elle est pas mal ta blague sur gauche, droite
    Onj voit que tu connais pas mon niveau habituel

  12. #12
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Par défaut
    Citation Envoyé par WINDFLY
    Tu veux dire par la que je crée une page cat1.jsp qui contient l'insert definition de la page que je veux afficher dans le body par exemple
    <definition name="movie" extends=".mainLayout">
    <put name="title" value="Movie Title" />
    <put name="body" value="/view/Movie.jsp" />
    </definition>

    et que j'appelle du menu de l'index la page cat1.jsp c ca?
    Oui, c'est ca (enfin je crois ).
    Tu appelles un tile différent, dont la définition du "body" est différente.

  13. #13
    Membre habitué
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Par défaut
    C'est bon ca fonctionne.
    Il suffit de faire une page qui contient le "content" avec un body avec la page desirée.
    Mais j'ai une autre question si je veux afficher les resultats d'une requete dans une combobox et pourvoir selectionner un des composant et l'affihcer sur une autre page tu aurais une idée?

  14. #14
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Par défaut
    Qu'est-ce qui te pose problème ? Faire ta requête en base ? Construire ta combo ? Qu'est-ce que tu entends par "l'afficher sur une autre page" ?

  15. #15
    Membre habitué
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Par défaut
    En fait j'ai fait une combobox, qui collecte les données d'une des tables de la base et je veux mettre un bouton add qui ajoute la donnée correspondant dans un bean et que je puisse afficher les données ajouter dans une page jsp comme un caddy.

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut
    Petite sugestion :
    Tu devrais mettre ce post en et créer une autre discussion dont le thème serait ton histoire de combobox....

    En ce qui concerne ta question sur ca :
    Citation Envoyé par WINDFLY
    Csi je veux afficher les resultats d'une requete dans une combobox et pourvoir selectionner un des composant et l'affihcer sur une autre page tu aurais une idée?
    Tu as une liste déroulante qui est affichée sur ta page, et tu veux que lorsque l'utilisateur clique sur un item de la liste cela le renvoie sur une page ou est affiché les infos sur l'item selectionné c'est ca?

  17. #17
    Membre habitué
    Inscrit en
    Août 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 12
    Par défaut
    oui c'est exactement ca.
    Je vais mettre mon post en resolu et creer un autre.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 06/04/2015, 02h02
  2. Menu, header, footer, body avec Struts-layout
    Par gitos dans le forum Struts 1
    Réponses: 8
    Dernier message: 03/03/2009, 10h00
  3. [VBA] Excel:Creation d'un menu ...
    Par le_sonic dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/12/2005, 14h09
  4. Creation d'un menu
    Par Naruto_kun dans le forum C
    Réponses: 7
    Dernier message: 16/12/2005, 15h42
  5. [DEBUTANT] [STRUTS]Creation d'un bean init
    Par grizzz dans le forum Struts 1
    Réponses: 3
    Dernier message: 25/02/2005, 09h54

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