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 :

Pb avec les tiles


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 93
    Points : 51
    Points
    51
    Par défaut Pb avec les tiles
    Bonjour,

    Je travail sur un projet déjà mis en place et qui fonctionne, donc je n'ai pas de pb de conf normalement mais j'ai besoin de faire qqch de nouveau et j'ai besoin d'aide.

    J'ai feuilleté plusieurs tuto mais je n'y arrive pas.

    J'ai une même page qui doit avoir celon se cas deux textes différents dans un <p></p>.

    Je voudrais changer ce texte via tiles. Pour l'instant j'ai fait ça (ou le texte à changer est ds "text"):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <definition name="portal.login" extends="portal.main">
    		<put name="title" value="Formaltis Portal | Authentification" />
    		<put name="text" value="Si vous possédez déjà un compte d'accès au portail, merci de vous identifier :" />
    		<put name="body" value="/jsp/portal/common/login/portal.login.jsp" />
    		<put name="menu" value="" />
    	</definition>
    et je l'appel ds ma jsp comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tiles:getAsString name="text" />
    Mais j'ai ce msg d'erreur :

    [ServletException in:/jsp/portal/common/login/portal.login.jsp] Error - tag.getAsString : attribute 'text' not found in context. Check tag syntax'


    Pouvez vous m'aider svp.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 75
    Points : 85
    Points
    85
    Par défaut
    Je pense qu'il faut faire avant un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <tiles:importAttribute name="text">
    cf: http://struts.apache.org/1.3.10/stru...mportAttribute

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 93
    Points : 51
    Points
    51
    Par défaut
    Bonjour,

    Merci pour ta réponse, cependant elle ne résoud pas mon problème. J'ai toujours le msg d'erreur, sauf que bien sur maintenant c'est : "Error - tag importAttribute : property 'text' not found in context. Check tag syntax' "

    Je pense qu'il y a quelque chose pour "déclarer" text. Mais je n'arrive pas à savoir quoi ni comment.

    Une autre idée ?

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 25
    Points : 28
    Points
    28
    Par défaut
    Bonjour,
    Peux tu nous montrer un peu le code de la JSP ainsi que le code de ton xml de définition de tiles (avec le portal.main)?
    A bientot,
    Thomas

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 93
    Points : 51
    Points
    51
    Par défaut
    bonjour, merci de me répondre !

    voilà portal.main

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	<definition name="portal.main" path="/jsp/portal/common/layout/layout.jsp">
    		<put name="title" value="A DEFINIR" />
    		<put name="header" value=".portal.header" />
    		<put name="footer" value="/jsp/portal/common/layout/footer.jsp" />
    		<put name="body" value="A DEFINIR" />
        <put name="text" value="A DEFINIR" />
    	</definition>
    Voilà c'est ici que j'ai essayé de "déclarer" mon text. Mais avec ou sans j'ai l'erreur.


    Et voici un extrait plus grand de ma jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div class="item message centre">
    				 <p>
    				 	<tiles:getAsString name="text"/>
    				 </p>
    			</div>
    Tout simplement.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 25
    Points : 28
    Points
    28
    Par défaut
    Tu importes bien les tags tiles au début de ta JSP?

    Quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 93
    Points : 51
    Points
    51
    Par défaut
    Helas mon problème ne vient pas de la... J'ai effectivement déjà cet import.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles"%>

  8. #8
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 25
    Points : 28
    Points
    28
    Par défaut
    Tout est bon du coté du struts-config.xml?
    Le plugin Tiles est bien intégré?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        <plug-in className="org.apache.struts.tiles.TilesPlugin">
            <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml,/WEB-INF/tiles-defs-main.xml"/>
        </plug-in>
    Le top serait que tu nous montres l'intégralité de ton struts-config.xml et de ton tiles.xml et même toute la page JSP, ce serait plus simple

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 93
    Points : 51
    Points
    51
    Par défaut
    oui oui regarde :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     <plug-in className="org.apache.struts.tiles.TilesPlugin">  
         <set-property property="definitions-config" value="/WEB-INF/tiles-definitions.xml" />  
         <set-property property="moduleAware" value="true" />  
      </plug-in>
    Le truc, comme je l'ai expliqué, c'est que je suis sur un existant qui fonctionne, cad que par exemple pour les titres dans le header et tout, il y a déjà un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <head>
      <title><tiles:getAsString name="title" /></title>
    </head>
    Qui fonctionne lui ! donc je me demande ce qu'il y a de différent pour moi.

    EDIT : Je ne peux pas faire ça, c'est un truc pour mon taff, je n'ai pas le droit de mettre ce genre de code... dsl, tiens juste compte du fait que le struts et le tiles-definitions sont corrects.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 25
    Points : 28
    Points
    28
    Par défaut
    Ton tag pour importer text, tu le mets dans quelle JSP? "/jsp/portal/common/layout/layout.jsp"?

    Si tu le mets ailleurs, genre dans footer.jsp, ca ne marche pas il me semble.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 93
    Points : 51
    Points
    51
    Par défaut
    quel tag pour importer text ?

    Je résume

    voici une partie de mon tiles-definitions.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
    <tiles-definitions>
    	<!-- general layout -->
    	<definition name="portal.main" path="/jsp/portal/common/layout/layout.jsp">
    		<put name="title" value="A DEFINIR" />
    		<put name="header" value=".portal.header" />
    		<put name="footer" value="/jsp/portal/common/layout/footer.jsp" />
    		<put name="body" value="A DEFINIR" />
        <put name="text" value="A DEFINIR" />
    	</definition>
    	<definition name=".portal.header" path="/jsp/portal/common/layout/header.jsp">
    		<put name="menu" value="/jsp/portal/common/layout/menu.jsp" />
    	</definition>
     
    	<!-- pages -->
    	<definition name="portal.login" extends="portal.main">
    		<put name="title" value="Formaltis Portal | Authentification" />
    		<put name="text" value="Si vous possédez déjà un compte d'accès au portail, merci de vous identifier :" /> 
    		<put name="body" value="/jsp/portal/common/login/portal.login.jsp" />
    		<put name="menu" value="" />
    	</definition>
    .....
    </tiles-definitions>
    et dans portal.login j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div class="item message centre">
    				 <p>
    				 	<tiles:getAsString name="text"/>
    				 </p>
    			</div>

    Voilà j'espère que c'est un peu plus claire pour toi

  12. #12
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 25
    Points : 28
    Points
    28
    Par défaut
    Ton portal.login extends portal.main.
    Dans ton portal.main, tu as le path qui correspond à ton layout. Dans ton cas, il s'agit de "/jsp/portal/common/layout/layout.jsp", c'est dans ce layout que tu peux faire appel à des tags tiles pour récupérer les attributs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tiles:getAsString name="test"/>
    Si tu essayes dans la JSP "/jsp/portal/common/login/portal.login.jsp", ca ne fonctionnera pas.

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 93
    Points : 51
    Points
    51
    Par défaut
    ça explique pourquoi ds layout.jsp ça marche....

    Mais comment je fais alors pour l'utiliser dans mon portal.login ? ?

    Il y a un moyen ? surrement non ?

  14. #14
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 25
    Points : 28
    Points
    28
    Par défaut
    Tu peux toujours ajouter une nouvelle définition tiles qui contiendra comme path : "/jsp/portal/common/login/portal.login.jsp" et un attribut text qui contiendra ton texte.

    Et après, dans ton portal.login, la value de ton attribut body devient un appel tiles à ta nouvelle définition.

    Mais bon, après, je vois pas trop l'intérêt de faire des appels tiles en dehors du layout. Pourquoi n'insère tu pas en statique ton texte dans la page portal.login.jsp?

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 93
    Points : 51
    Points
    51
    Par défaut
    Bon j'ai rajouter un attrbut text dans mon layout, et maintenant ........... j'ai une nouvelle erreur :

    [ServletException in:/jsp/portal/common/login/portal.login.jsp] Error - tag.getAsString : attribute 'text' not found in context. Check tag syntax' The requested resource (/formaltis1.5/jsp/portal/common/layout/Si vous possédez déjà un compte d'accès au portail, merci de vous identifier is not available

    -_-'

  16. #16
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 25
    Points : 28
    Points
    28
    Par défaut
    Tu as ajouté un attribut ou?
    dans portal.main?
    Si oui, ca ne changera rien.
    Normalement, tu ne devrais pas avoir besoin de faire appel à des tags tiles dans ton body à moins que celui ci soit aussi un layout.

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 93
    Points : 51
    Points
    51
    Par défaut
    Je ne veux pas le mettre en static parceque cet écran de login tu l'as pour te logger, dc là il y a écrit genre "loggez vous" et aussi quand tu t'es inscrit pour dire "voilà utilise l'identifiant de machin pour te connecter" (avec un LDAP)

    Et bon, utiliser les tiles pour presque tout et là faire 2 pages de code identique à une phrase près....

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 93
    Points : 51
    Points
    51
    Par défaut
    Oulà, on se décale.... Non mon attribut je l'ai ajouté comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <body>
      <tiles:insert attribute="header" />
      <div class="page">
         <tiles:insert attribute="body" />
         <tiles:insert attribute="text" />
      </div>
      <tiles:insert attribute="footer" />
    </body>

    dans mon layout.jsp.

    Bon après ça marche pas non plus

  19. #19
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 25
    Points : 28
    Points
    28
    Par défaut
    Dans ce cas, tu recrée un layout pour ta page de login.
    Quelque chose comme portal.login.body ou autre chose.
    Dedans tu définies ta page JSP de login avec ton tag:getAsString

    Ca donnerai quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <definition name="portal.login" extends="portal.main">
    		<put name="title" value="Formaltis Portal | Authentification" />
    		<put name="body" value="portal.login.body.1" />
    		<put name="menu" value="" />
    	</definition>
    <definition name="portal.login.body" path="tapagelogin.jsp">
    		<put name="text" value="A DEFINIR" /> 
    </definition>
    <definition name="portal.login.body.1" extends="portal.login.body">
    		<put name="text" value="Si vous possédez déjà un compte d'accès au portail, merci de vous identifier :" /> 
    </definition>
    Et la normalement, dans "tapagelogin.jsp", tu peux faire un tiles:getAsString name="text"

    C'est assez moche mais bon, ca devrait fonctionner un truc dans le genre

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 93
    Points : 51
    Points
    51
    Par défaut
    Bah merci beaucoup, je vais essayer ça, mon chef va surrement pas aimé mais en même temps ça fait depuis hier que je calle là dessus et qu'il est "occupé" alors....

    Merci encore

Discussions similaires

  1. pb avec le fichier de def pour les tiles
    Par benoizette75 dans le forum Struts 1
    Réponses: 2
    Dernier message: 23/08/2006, 09h09
  2. Pb avec les menus
    Par Ph. B. dans le forum XMLRAD
    Réponses: 6
    Dernier message: 29/01/2003, 11h57
  3. []Problème avec les formulaires Outlook
    Par davidinfo dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59
  4. PB d'import avec les ActiveX sous BCB6
    Par dergen dans le forum C++Builder
    Réponses: 4
    Dernier message: 29/11/2002, 10h18
  5. Pbm avec les '&'...
    Par AmaX dans le forum Composants VCL
    Réponses: 2
    Dernier message: 19/08/2002, 11h08

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