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 :

Comment passer un dataModel en paramètre à un composant ?


Sujet :

JSF Java

  1. #1
    Membre confirmé Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Par défaut Comment passer un dataModel en paramètre à un composant ?
    Bonjour à tous !
    Je voudrais passer un dataModel à un composant pour que celui-ci en énumère le contenu..
    Seulement, je ne sais pas comment faire pour lui passer ce type de paramètre...

    J'ai pour l'instant ceci:

    Le code de mon composant:
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    <?xml version='1.0' encoding='UTF-8' ?>
    <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0
    Transitional//EN" http://www.w3.org/TR/xhtml1/DTDxhtml1-transitional.dtd>
     
    <ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
            xmlns:h="http://java.sun.com/jsf/html"
                    xmlns:ui="http://java.sun.com/jsf/facelets"
                    xmlns:f="http://java.sun.com/jsf/core">
     
        <h:dataTable value="#{tickets}" var="ticket">
     
                 <h:column>
                    <f:facet name="header">
                        <h:outputText value="Id" />
                    </f:facet>
                    <h:outputText value="#{ticket.id}" />
                </h:column>
     
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Summary" />
                    </f:facet>
                    <h:outputText value="#{ticket.summary}" />
                </h:column>
     
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Priority" />
                    </f:facet>
                    <h:outputText value="#{ticket.priority}" />
                </h:column>
     
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Reported by" />
                    </f:facet>
                    <h:outputText value="#{ticket.reporter}" />
                </h:column>
     
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Status" />
                    </f:facet>
                    <h:outputText value="#{ticket.status}" />
                </h:column>
     
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Action" />
                    </f:facet>
                    <h:form>
                    <h:commandLink action="#{ticketController.viewTicket}">Show</h:commandLink>
                    </h:form>
                </h:column>
     
            </h:dataTable>
     
            <br/>
     
            <h:outputLink value="addItem.jsf">
                Add an Item
            </h:outputLink>
    </ui:composition>
    Le code de l'utilisation de mon composant:
    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
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
     
    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
                    xmlns:ui="http://java.sun.com/jsf/facelets"
                    xmlns:h="http://java.sun.com/jsf/html"
                    xmlns:f="http://java.sun.com/jsf/core"
                    xmlns:supinfo="http://supinfo.com/suptrac"
                    template="WEB-INF/templates/loggedTemplate.xhtml">
     
        <ui:define name="title">Ticket list</ui:define>
     
        <ui:define name="content">                 
            <supinfo:listTicketComponent tickets="#{ticketController.newTicketModel}" />
        </ui:define>
     
     
    </ui:composition>
    Seulement, rien de s'affiche...

    Pouvez-vous me donner des pistes pour résoudre ceci ?

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par titou624 Voir le message
    Seulement, rien de s'affiche...
    Même pas le Add an Item?
    Même pas le template?

    Si c'est le cas, vous ne passez probablement pas par votre servlet JSF. L'url du navigateur doit pointer vers une url mappée par le servlet jsf dans le web.xml

  3. #3
    Membre confirmé Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Par défaut
    Si le template s'affiche mais le composant n'a pas de données....
    Pardon pour l'imprécision

    Voyez vous d'où cela peut-il provenir ?

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    et le Add item, il apparait?

  5. #5
    Membre confirmé Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Par défaut
    Non pas de add item ...

    Merci pour votre intéret en tout cas !

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    comment est défini votre composant dans vos taglibs?

  7. #7
    Membre confirmé Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Par défaut
    Voici le fichier taglib.sup.com.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?xml version="1.0"?>
    <!DOCTYPE facelet-taglib PUBLIC
      "-//Sun Microsystems, Inc.//DTD FaceletTaglib 1.0//EN"  "facelet-taglib_1_0.dtd">
     
    <facelet-taglib>
        <namespace>http://sup.com/suptrac</namespace>
        <tag>
            <tag-name>listTicketComponent</tag-name>
            <source>listTicketComponent.xhtml</source>
        </tag>
    </facelet-taglib>
    puis dans web.xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <context-param>
            <param-name>facelets.LIBRARIES</param-name>
            <param-value>/WEB-INF/supinfo.taglib.xml</param-value>
        </context-param>
    Encore merci !

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par titou624 Voir le message
    Voici le fichier taglib.sup.com.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <context-param>
            <param-name>facelets.LIBRARIES</param-name>
            <param-value>/WEB-INF/supinfo.taglib.xml</param-value>
        </context-param>
    Le nom n'est pas correct dans votre web.xml. De plus, le plus simple est de mettre votre taglib dans META-INF/nimportequoi.taglib.xml, elle sera automatiquement scannée par facelets. Quand la taglib n'est pas reconnu, ca se vois tout de suite par la présente de la taglib en question dans le document que vois le navigateur (les taglibs non reconnues sont envoyées telles quelles dans la réponse)

  9. #9
    Membre confirmé Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Par défaut
    j'ai enlevé l'instruction du fichier web.xml, mais le composant ne s'affiche toujours pas. Pas de changement depuis tout à l'heure. J'ai essayé de retirer le h:dataTable.
    Il ne reste plus que ca:

    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
     
    <?xml version='1.0' encoding='UTF-8' ?>
    <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0
    Transitional//EN" http://www.w3.org/TR/xhtml1/DTDxhtml1-transitional.dtd>
     
    <ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
             xmlns:h="http://java.sun.com/jsf/html">
     
     
            <h:outputLink value="addTicket.xhtml">
                Add an Item
            </h:outputLink>
     
     
    </ui:composition>

  10. #10
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    le fichier généré ressemble à quoi?

  11. #11
    Membre confirmé Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Par défaut
    Le component reste en taglib:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <sup:listTicketComponent></sup:listTicketComponent>

  12. #12
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 94
    Par défaut
    je ne sais pas si ca sera être utile pour vous , mais j'ai eu le même problème et j'ai dû enlevé complètement mon application de serveur d'application avant de la redéployer à nouveau et ça marche bien en suite .

  13. #13
    Membre confirmé Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Par défaut
    Oui j'ai aussi pris l'habitude de faire cette manipulation étant donné que je travaille en local ^^. Mais malheureusement cela ne fonctionne pas ...

    Merci pour votre aide !

  14. #14
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    vous avez retiré l'entrée du web.xml, mais qu'avez vous fait pour que la taglib soit reconnue?

  15. #15
    Membre confirmé Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Par défaut
    J'ai mis le fichier taglib dans META-INF/sup.taglib.xml

  16. #16
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    dans un jar ou dans WEB-INF/classes?

  17. #17
    Membre confirmé Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Par défaut
    J'ai mis le fichier taglib dans le WEB-INF du war avec netbeans.

  18. #18
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    il doit etre dans WEB-INF/classes/META-INF/ Facelets va scanner les META-INF/ présents dans le classpath

  19. #19
    Membre confirmé Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Par défaut
    J'ai fait comme vous m'avez dis cependant netbeans ne me fais plus l'auto-complétion lorsque je veux definir mon composant dans le fichier xhtml. Et il me met donc une erreur...

  20. #20
    Membre confirmé Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Par défaut
    Bon j'ai réussi a afficher mon composant !!! Seulement, lorsque je veut lui donner le modèle en paramètre, netbeans m'informe que l'attribut n'est pas déclaré dans l'interface du composant...
    Pouvez vous me donner un exemple de déclaration d'attribut dans une interface de composant ?

    Encore merci pour votre aide toujours aussi précieuse !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Comment passer et lire des paramètres passé à mon application VB
    Par ssakhri dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 27/11/2006, 16h50
  2. comment passer un vecteur en paramètre?
    Par chrono23 dans le forum C++
    Réponses: 9
    Dernier message: 21/06/2006, 09h34
  3. Réponses: 1
    Dernier message: 06/04/2006, 13h22
  4. Réponses: 2
    Dernier message: 17/10/2005, 12h09
  5. Comment passer une procédure en paramètre ?
    Par gudul dans le forum Langage
    Réponses: 4
    Dernier message: 30/09/2005, 13h57

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