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 :

Récupération d'une ligne active


Sujet :

JSF Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 109
    Points : 46
    Points
    46
    Par défaut Récupération d'une ligne active
    Bonjour,

    Après avoir navigué sur le forum et le FAQ relatif à ce problème, je n'arrive toujours pas à récupérer ma ligne active. Je veux soit récupérer mon objet, soit son champs isbn.

    Voici mes 2 essais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <h:dataTable styleClass="order-table" headerClass="order-table-header" rowClasses="order-table-odd-row,order-table-even-row" var="_book"
    value="#{catalogueIBean.books}">
     
    <h:column>
    <h:commandButton value="supprimer" action="#{identificationIBean.achat}">   
    <f:setPropertyActionListener value="#{_book}"
    target="#{identificationIBean.selectedBook}" />
    </h:commandButton>    
    </h:column>
     
    </h:dataTable>
    Qui ne fait strictement rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <h:dataTable styleClass="order-table" headerClass="order-table-header" rowClasses="order-table-odd-row,order-table-even-row" var="_book" value="#{catalogueIBean.books}">
     
    <h:column>
    <a4j:commandButton id="valideR1" reRender="table2" action="#{identificationIBean.achat}">
    <f:setPropertyActionListener value="#{_book.isbn}" target="#{identificationIBean.selectedBook}"/></a4j:commandButton>
    </h:column>
    </h:dataTable>
    Qui recharge ma page.

    Dans mon identificationIBean j'ai bien :

    private String selectedBook ; et les get-set associé

    et ma petite méthode qui ne fait rien pour le moment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public String achat() throws Exception {
     
    return null;
    }
    Est-ce que le fait d'utiliser un autre bean que celui de mes livres est "grave" ?

  2. #2
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    a priori oui, car ton doit etre du meme type de l´object a selectionner et tu doit le selectionner a dans ton datatable, un truc de ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:dataTable selection="#{identificationIBean.selectedBook}">
    Eric

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 109
    Points : 46
    Points
    46
    Par défaut
    Le fait que j'utilise un autre bean ne veut pas dire que que mon objet ne sera pas de même type si ?
    Si dans mon bean1 je déclare ma liste de book et donc que mon objet sélectionné sera un type book, il suffit d'avoir un objet de type book dans mon bean 2 pour le récupérer non ?

    Je n'ai toujours pas réussi à récupérer mon objet et à lancer une fonction par la même occasion afin d'enregistrer le livre sélectionné .

  4. #4
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 504
    Points : 7 840
    Points
    7 840
    Par défaut
    Bonjour chido,

    Alors tu veux récupérer le "Book" de ton "Order"? "Order" ne contiendrait il une collection "OrderLine", avec un "Book" pour chaque "OrderLine"?

    Je me trompe peut-être et tu n'as qu'un "Book" par "Order"...
    Chaque fois que tu dis "je ne peux pas", n'oublie pas d'ajouter le mot "encore".

  5. #5
    Membre confirmé Avatar de bruneltouopi
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 308
    Points : 466
    Points
    466
    Par défaut
    Ton selectedBook doit être de type book qui est certainement un élément de ta collection value="#{catalogueIBean.books}">

    Et lorsqu'on décide de mélanger les Beans dans une même page.il faut bien maitriser les scopes
    Ce qui ne me tue pas me rend plus fort.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 109
    Points : 46
    Points
    46
    Par défaut
    Oui Mishulyna tu as raison. J'ai plusieurs choses à faire dans mon projet :

    J'ai 1 tableau avec ma liste de book et je veux que quand je clique sur une ligne (ou un bouton associé à la ligne) mon code ajoute une orderLine dans mon order possèdant le book de la ligne sur laquelle j'ai cliqué.

    Ensuite j'ai un tableau avec mes orderLine (mon panier) et je veux pouvoir changer la quantity de chaque ligne OU supprimer une ligne.

    Dans tous les cas, si je ne sais pas récupérer ma donnée de ma ligne je ne peux rien daire

    bruneltouopi => Oui mon selectedBook est un type Book donc j'ai importé mon entity Book dans mon CatalogueBean mais aussi dans mon autre Bean qui doit récupérer ce Book ;-)

  7. #7
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 504
    Points : 7 840
    Points
    7 840
    Par défaut
    Bonjour,

    Essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <h:commandButton value="supprimer" action="#{identificationIBean.achat}">   
                    <f:param name="isbn" value="#{_book.isbn}"/>
                    <f:setPropertyActionListener value="#{_book}" target="#{identificationIBean.current}" />
    </h:commandButton>
    Chaque fois que tu dis "je ne peux pas", n'oublie pas d'ajouter le mot "encore".

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 109
    Points : 46
    Points
    46
    Par défaut
    JSF me gave royalement.... voici les différentes réactions en fonction des boutons et des LIEUX de positions :

    Panier.xhtml
    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
    <form id="listeOrderLine">
     
    					<h1>Liste des achats</h1>
     
    					Date de création :
    					<h:outputLabel value="#{_orderLine.order.orderDate}" />
     
    					<h:dataTable styleClass="order-table"
    						headerClass="order-table-header"
    						rowClasses="order-table-odd-row,order-table-even-row"
    						var="_orderLine" value="#{userIBean.orderLines}">
     
     
    						<p:column style="width:6%" headerText="Add to Order">
    						<!-- BOUTON 1-->
    							<p:commandButton id="addOrderButton" value="Add"
    								actionListener="#{userIBean.addOrder('dede')}" immediate="true"
    								ajax="true" icon="ui-icon-folder-open">
    							</p:commandButton>
    						</p:column>
     
     
    						<h:column>
    						<!-- BOUTON 2-->
    							<h:commandButton value="supprimer"
    								action="#{UserIBean.delOrderLine}">
    								<f:param name="id" value="#{_orderLine.id}" />
    								<f:setPropertyActionListener value="#{_orderLine}"
    									target="#{UserIBean.orderLineSelected}" />
    							</h:commandButton>
    						</h:column>
    Catalogue.xhtml
    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
    <h:form id="listBooks">
    					<h1>Liste des livres</h1>
     
    					<h:dataTable styleClass="order-table"
    						headerClass="order-table-header"
    						rowClasses="order-table-odd-row,order-table-even-row" var="_book"
    						value="#{catalogueIBean.books}">
     
    						<p:column style="width:6%" headerText="Add to Order">
    						<!-- BOUTON 3-->
    							<p:commandButton id="addOrderButton" value="Add"
    								actionListener="#{userIBean.addOrder('dede')}" immediate="true"
    								ajax="true" icon="ui-icon-folder-open">
    							</p:commandButton>
    						</p:column>
     
    						<h:column>
    						<!-- BOUTON 4-->
    							<h:commandButton value="supprimer"
    								action="#{UserIBean.delOrderLine}">
    								<f:param name="title" value="#{_book.title}" />
    								<f:setPropertyActionListener value="#{_book}"
    									target="#{UserIBean.bookselected}" />
    							</h:commandButton>
    						</h:column>
    BOUTON 1 : Aucune réaction...

    BOUTON 2 : Me remet sur ma facelet catalogue.xhtml ???

    BOUTON 3 : Lance la fonction addOrder(String var) de mon bean userIBean avec comme param : var = dede (YOUPI !)

    BOUTON 4 : Erreur : /catalogue.xhtml @77,47 target="#{UserIBean.bookselected}": Target Unreachable, identifier 'UserIBean' resolved to null.

    Admirez à quel point mon bouton 1 et 3 sont identiques mais l'un fonctionne et pas l'autre

    Je désespère...

  9. #9
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 504
    Points : 7 840
    Points
    7 840
    Par défaut
    Bonjour,

    Les boutons 1 et 3 sont identique mais 1 est dans un form et 3 dans un h:form. Pour l'erreur du bouton 4: c'est "userIBean", pas "UserIBean"...

    Surtout ne désespère pas!
    Chaque fois que tu dis "je ne peux pas", n'oublie pas d'ajouter le mot "encore".

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 109
    Points : 46
    Points
    46
    Par défaut
    I LOVE YOU Mishulyna !!!

    La balise form de base ne gère pas ça donc et je n'avais pas chercher le type de balise mais le fait d'avoir un id dans la balise. Tu viens de me débloquer considérablement pour mon projet je vais pouvoir finaliser pas mal de chose je te suis très reconnaissant !!!

    Un grand merci !!

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

Discussions similaires

  1. Récupérer une ligne active rich:dataTable
    Par kookee dans le forum JSF
    Réponses: 3
    Dernier message: 26/03/2009, 15h12
  2. Supprimer une ligne active
    Par JeanMikael dans le forum VBA Access
    Réponses: 6
    Dernier message: 25/09/2007, 14h31
  3. récupération d'une ligne avec un select MAX(champ1)
    Par rdams dans le forum Requêtes
    Réponses: 8
    Dernier message: 03/07/2006, 10h33
  4. Requete entre 2 table et récupération d'une ligne
    Par lechevin dans le forum Langage SQL
    Réponses: 13
    Dernier message: 12/01/2006, 13h54
  5. [C#] Récupération d'une ligne d'un DataView en c#
    Par jerome456 dans le forum Windows Forms
    Réponses: 10
    Dernier message: 20/01/2005, 09h29

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