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

JSF Java Discussion :

Problème avec les compositions


Sujet :

JSF Java

  1. #1
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Points
    7 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Par défaut Problème avec les compositions
    Bonjour,

    J'ai un composant (appelons x:table) qui est une composition créant une table (pour être précis, une rich:dataTable).
    J'ai aussi défini un composant pour chaque colonne de mon tableau (appelons x:column).

    Du coup, pour créer une table, je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <x:table ...>
        <x:column ...>
        <x:column ...>
        ...
    </x:table>
    Quant au code de mon composant table, c'est à peu près ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <ui:composition>
        ...
        <rich:dataTable ...>
            <!-- Ci dessous, j'insère tout le contenu de <x:table>, à savoir mes <x:column> -->
            <ui:insert/>
        </rich:dataTable>
    </ui:composition>
    Maintenant, je voudrais ajouter en plus une sorte de super header à ma table. Idéalement, je voudrais qu'une page définissant un tableau soit écrite comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <x:table ...>
        <x:header>
            <!-- Ici le contenu de mon header -->
        </x:header>
        <x:column ...>
        <x:column ...>
        ...
    </x:table>
    En gros, c'est un peu la même chose que d'utiliser le <f:facet name="header">xxx</f:facet>.

    Seul problème, c'est comment puis-je écrire ma composition (celle qui correspond à <x:table>) pour mettre dans un coin ce qui est contenu dans <x:header> et dans un autre coin, le reste.
    C'est-à-dire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <ui:composition>
        ...
        <!-- Ici je voudrais ajouter le contenu de <x:header> -->
        ...
        <rich:dataTable ...>
            <!-- Ici le reste du contenu de <x:table> -->
            <ui:insert/>
        </rich:dataTable>
    </ui:composition>
    Je précise que j'aimerais si possible rester dans une solution privilégiant la composition et éviter d'avoir à coder des choses directement en Java.

    Merci.

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Points
    7 679
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Par défaut
    Je peux te proposer une solution (qui devrait marcher théoriquement mais qui marche pas chez moi !) !

    code du composant Table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <ui:composition>
        <ui:insert name="tableHeader" />
        <rich:dataTable ...>
            <!-- Ci dessous, j'insère tout le contenu de <x:table>, à savoir mes <x:column> -->
            <ui:insert/>
        </rich:dataTable>
    </ui:composition>
    code de tableHeader :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <ui:composition>
      <ui:define name="tableHeader">
         <ui:insert />
      </ui:define>
    </ui:composition>
    l'emploie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <x:table ...>
        <x:header>
            <!-- Ici le contenu de mon header -->
        </x:header>
        <x:column ...>
        <x:column ...>
        ...
    </x:table>
    Voilà ! le truc c'est d'employer <ui:define name="xxx"> et <ui:insert name="xxx" />.
    Mais comme je l'ai dit, ça fonctionne pas chez moi, peut être que tu aurais plus de chance !

  3. #3
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Points
    7 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Par défaut
    Merci pour ta réponse.

    Hélas, cela faisait partie de mes tests, et effectivement, cela ne fonctionne pas chez moi non plus (la table est affichée, mais pas mon header).

    Pourtant, ça paraissait logique, mais non

    D'autres idées ?

Discussions similaires

  1. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 13h06
  2. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 10h04
  3. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 17h39
  4. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 16h44
  5. []Problème avec les formulaires Outlook
    Par Invité dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 10h59

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