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 & Tiles] passer un attribut au modèle


Sujet :

Struts 1 Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 10
    Points : 10
    Points
    10
    Par défaut [Struts & Tiles] passer un attribut au modèle
    Bonjour,
    Je développe une application en utilisant struts et tiles.
    J'ai une définition tiles qui ressemble à celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <definition name=".main_layout" path="/main_layout.jsp">
      <put name="header" value="/pages/header.jsp" type="page"/>
      <put name="body" value="A DEFINIR" type="string"/>
      <put name="footer" value="/pages/footer.jsp" type="page"/>
    </definition>
    et le fichier main_layout.jsp ressemble à celui-ci :
    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
    24
    25
    26
    27
    28
    29
    30
     
    <%@ taglib uri="/tags/struts-tiles" prefix="tiles" %>
     
    <html>
      <head>
      </head>
     
      <body>
        <% String tmp = "tmp" %>
        <div id="container">
          <div id="header">
            <!-- begin header -->
            <tiles:insert name="header"/>
            <!-- end header -->
          </div>
     
          <div id="body">
            <!-- begin body -->
            <tiles:insert name="body"/>
            <!-- end body -->
          </div>
     
          <div id="footer">
            <!-- begin footer -->
            <tiles:insert name="footer"/>
            <!-- end footer -->
          </div>
        </div>
      </body>
    </html>
    J'aurais voulu savoir si je pouvais modifier ma variable "tmp" en fonction d'un attribut tiles et si oui comment le faire ?
    Merci

    PS : n'hésiter pas à me demander de préciser ma question si je n'ai pas été clair.

  2. #2
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Dans ta définition Tiles, tu rajoutes ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <put name="tmp" value="tmp1"/>
    Et dans ta jsp, tu récupères la valeur de ton attribut tmp comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tiles:getAsString name="tmp"/>

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Je pense que je me suis mal exprimé ou que j'ai mal définit ma problématique.
    En fait je cherche à modifier dynamiquement une variable dans ma page jsp pour pouvoir l'utiliser apres comme valeur d'un attribut d'un tag (qui vient d'un framework propriétaire).
    Avec ta solution j'arrive bien à récuper la valeur voulu mais je n'arrive pas à l'affecter à l'attribut de mon tag.
    J'avais tout d'abord penser à utiliser le "getAsString" directement dans mon tag :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <tmp:tag name="<tiles:getAsString name="tmp"/>"/>
    mais j'obtient l'erreur suivante :
    The attribute "name" cannot have a tag as a value (JSP limitation).
    Mon idée maintenant est de passer par une scriplet définissant une variable et de la modifier en utilisant tiles, mais je ne sais pas comment faire...

  4. #4
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Dans ce cas, utilise le tag tiles:useAttribute qui permet de mettre ton attribut dans le contexte page comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tiles:useAttribute name="tmp" classname="java.lang.String"/>
    Et essaie d'y accèder directement dans ton tag comme ceci :

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    C bon ça fonctionne parfaitement merci beaucoup.

  6. #6
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    De rien.

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    Hello!

    Je voudrais passer une ArrayList d'object complexe de la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tiles:useAttribute id="rayonstoto" name="rayonstoto" classname="java.util.ArrayList<DoEltNiveau>" ignore="false" />
    en parametres parce que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tiles:useAttribute id="rayonstoto" name="rayonstoto" classname="java.util.ArrayList" ignore="false" />
    me renvoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Type mismatch: cannot convert from element type Object to DoEltNiveau
    puisque dans la page je boucle avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(DoEltNiveau rayon : rayonstoto)

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

Discussions similaires

  1. passer un attribut entre deux jsp.
    Par don'de dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 19/12/2006, 09h37
  2. [logic:iterate] Impossible de passer l'attribut type
    Par fisico dans le forum Struts 1
    Réponses: 1
    Dernier message: 27/10/2006, 10h42
  3. [Struts][XHTML] écriture d'un attribut dynamique
    Par tetram51 dans le forum Struts 1
    Réponses: 4
    Dernier message: 19/04/2006, 15h55
  4. [struts] controller tiles et layout
    Par agougeon dans le forum Struts 1
    Réponses: 6
    Dernier message: 22/02/2006, 18h02
  5. [JSP] prob pour combiner STRUTS et TILES (web.xml)
    Par lipao17 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 14/04/2005, 10h57

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