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

Développement Web en Java Discussion :

Mettre à jour une ligne dans un p:datatable


Sujet :

Développement Web en Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Points : 8
    Points
    8
    Par défaut Mettre à jour une ligne dans un p:datatable
    Bonjour tout le monde.
    Sa fait déjà quatre jour que je scrute le net à ce propos mais je ne trouve rien.
    en fait j'ai cette page jsf contenant un datatable:

    EtudiantAffiche.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
    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:f="http://java.sun.com/jsf/core"
          xmlns:ui="http://java.sun.com/jsf/facelets"
          xmlns:p="http://primefaces.org/ui">
     
            <h:head>
                <f:facet name="first">
                    <meta content='text/html; charset=UTF-8' http-equiv="Content-Type"/>
     
                    <title>Liste des étudiants</title>
                </f:facet>
            </h:head>
     
            <h:body>
     
     
                        <f:event type="javax.faces.event.PreRenderViewEvent" listener="#{etudiantMbean.preRenderView()}"/>
                        <f:view>
                            <h:form>
                                <h1><h:outputText value="List"/></h1>
                                <p:dataTable value="#{etudiantMbean.allEtudiant}" 
                                             var="item"
                                             paginator="true"
                                             rows="5"
                                             widgetVar="etudiantTable"
                                             paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                                             rowsPerPageTemplate="5,10,15"
                                             emptyMessage="Aucun étudiant trouvé">
     
     
                                    <p:column>
                                        <f:facet name="header">
                                            <h:outputText value="Nom"/>
                                        </f:facet>
                                        <h:outputText value="#{item.nom}"/>
                                    </p:column>
                                    <p:column>
                                        <f:facet name="header">
                                            <h:outputText value="Prenom"/>
                                        </f:facet>
                                        <h:outputText value="#{item.prenom}"/>
                                    </p:column>
                                    <p:column>
                                        <f:facet name="header">
                                            <h:outputText value="Numéro de fiche"/>
                                        </f:facet>
                                        <h:outputText value="#{item.numFiche}"/>
                                    </p:column>
                                    <p:column>
                                        <f:facet name="header">
                                            <h:outputText value="Montant à payer"/>
                                        </f:facet>
                                        <h:outputText value="#{item.montantAttrib}"/>
                                    </p:column>
                                    <p:column>
                                        <f:facet name="header">
                                            <h:outputText value="Date Probable d'examen"/>
                                        </f:facet>
                                        <h:outputText value="#{item.sessionexamidSessionExam}"/>
                                    </p:column>
                                    <p:column>
                                        <f:facet name="header">
                                            <h:outputText value="Formation"/>
                                        </f:facet>
                                        <h:outputText value="#{item.formationidFormation}"/>
                                    </p:column>
                                    <p:column>
                                        <f:facet name="header">
                                            <h:outputText value="Agence"/>
                                        </f:facet>
                                        <h:outputText value="#{item.agenceidAgence}"/>
                                    </p:column>
                                    <p:column>
                                        <f:facet name="header">
                                            <h:outputText value="Afficher"/>
                                        </f:facet>
                                        <h:commandButton value="Afficher" action="#{etudiantMbean.showDetailsEtudiant(item)}"/>
                                    </p:column>
                                    <p:column>
                                        <f:facet name="header">
                                            <h:outputText value="Modifier"/>
                                        </f:facet>
                                        <h:commandButton value="Modifier" action="#{etudiantMbean.showDetails(item)}"/>
                                    </p:column>
                                    <p:column>
                                        <f:facet name="header">
                                            <h:outputText value="Supprimer"/>
                                        </f:facet>
                                        <h:commandButton value="Supprimer" action="#{etudiantMbean.delete(item)}"/>
                                    </p:column>
                                </p:dataTable>
                            </h:form>
                        </f:view>
     
                    </h:body>
     
    </html>
    j'utilise ce managed bean pour traiter avec la jsf EtudiantAffiche et j'y utilise la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    showDetails(Etudiant etud)
    pour récuperer un étudiant et transmettre à la page EtudiantDetails.xhtml:

    Voici la méthode showDetails:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public String showDetails(Etudiant etud){
            this.etudiant = etud;
            return "EtudiantDetails";
        }

    Le code source de la page EtudiantDetails.xhtml est le suivant:
    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
     
    <f:view>
                            <h:form>
                                <h1><h:outputText value="Create/Edit"/></h1>
                                <h:panelGrid columns="2">
                                    <h:outputLabel value="Nom:" for="nom" />
                                    <h:inputText id="nom" value="#{etudiantMbean.etudiant.nom}" title="Nom" required="true" requiredMessage="The Nom field is required."/>
                                    <h:outputLabel value="Prenom:" for="prenom" />
                                    <h:inputText id="prenom" value="#{etudiantMbean.etudiant.prenom}" title="Prenom" required="true" requiredMessage="The Prenom field is required."/>
                                    <h:outputLabel value="DateNaiss:" for="dateNaiss" />
                                    <h:inputText id="dateNaiss" value="#{etudiantMbean.etudiant.dateNaiss}" title="DateNaiss" required="true" requiredMessage="The DateNaiss field is required.">
                                        <f:convertDateTime pattern="MM/dd/yyyy" />
                                    </h:inputText>
                                    <h:outputLabel value="NumCNI:" for="numCNI" />
                                    <h:inputText id="numCNI" value="#{etudiantMbean.etudiant.numCNI}" title="NumCNI" required="true" requiredMessage="The NumCNI field is required."/>
                                    <h:outputLabel value="DateDelivCNI:" for="dateDelivCNI" />
                                    <h:inputText id="dateDelivCNI" value="#{etudiantMbean.etudiant.dateDelivCNI}" title="DateDelivCNI" required="true" requiredMessage="The DateDelivCNI field is required.">
                                        <f:convertDateTime pattern="MM/dd/yyyy" />
                                    </h:inputText>
                                    <h:outputLabel value="AdrMail:" for="adrMail" />
                                    <h:inputText id="adrMail" value="#{etudiantMbean.etudiant.adrMail}" title="AdrMail" />
                                    <h:outputLabel value="Profession:" for="profession" />
                                    <h:inputText id="profession" value="#{etudiantMbean.etudiant.profession}" title="Profession" />
                                    <h:outputLabel value="Societe:" for="societe" />
                                    <h:inputText id="societe" value="#{etudiantMbean.etudiant.societe}" title="Societe" />
                                    <h:outputLabel value="NumTel:" for="numTel" />
                                    <h:inputText id="numTel" value="#{etudiantMbean.etudiant.numTel}" title="NumTel" required="true" requiredMessage="The NumTel field is required."/>
                                    <h:outputLabel value="NumFiche:" for="numFiche" />
                                    <h:inputText id="numFiche" value="#{etudiantMbean.etudiant.numFiche}" title="NumFiche" required="true" requiredMessage="The NumFiche field is required."/>
                                    <h:outputLabel value="MontantAttrib:" for="montantAttrib" />
                                    <h:inputText id="montantAttrib" value="#{etudiantMbean.etudiant.montantAttrib}" title="MontantAttrib" required="true" requiredMessage="The MontantAttrib field is required."/>
                                    <h:outputLabel value="DepotDossier:" for="depotDossier" />
                                    <h:inputText id="depotDossier" value="#{etudiantMbean.etudiant.depotDossier}" title="DepotDossier" required="true" requiredMessage="The DepotDossier field is required."/>
                                    <h:outputLabel value="RetraitPermis:" for="retraitPermis" />
                                    <h:inputText id="retraitPermis" value="#{etudiantMbean.etudiant.retraitPermis}" title="RetraitPermis" required="true" requiredMessage="The RetraitPermis field is required."/>
                                    <h:outputLabel value="SessionexamidSessionExam:" for="sessionexamidSessionExam" />
                                    <h:selectOneMenu id="sessionexamidSessionExam" value="#{etudiantMbean.etudiant.sessionexamidSessionExam}" required="true" requiredMessage="The SessionexamidSessionExam field is required." converter="#{etudiantMbean.sessionExamConverter}">
                                        <!-- TODO: update below reference to list of available items-->
                                        <f:selectItems var="itemSessionexam" itemLabel="#{itemSessionexam.dateExam}" itemValue="#{itemSessionexam}" value="#{etudiantMbean.allSessionexam}"/>
                                    </h:selectOneMenu>
                                    <h:outputLabel value="FormationidFormation:" for="formationidFormation" />
                                    <h:selectOneMenu id="formationidFormation" value="#{etudiantMbean.etudiant.formationidFormation}" required="true" requiredMessage="The FormationidFormation field is required." converter="#{etudiantMbean.formationConverter}">
                                        <!-- TODO: update below reference to list of available items-->
                                        <f:selectItems var="itemFormation" itemValue="#{itemFormation}" value="#{etudiantMbean.allFormations}" itemLabel="#{itemFormation.categorieFormation} #{itemFormation.typeFormation}"/>
                                    </h:selectOneMenu>
                                    <h:outputLabel value="AgenceidAgence:" for="agenceidAgence" />
                                    <h:selectOneMenu id="agenceidAgence" value="#{etudiantMbean.etudiant.agenceidAgence}" required="true" requiredMessage="The AgenceidAgence field is required." converter="#{etudiantMbean.agenceConverter}">
                                        <!-- TODO: update below reference to list of available items-->
                                        <f:selectItems var="itemAgence" value="#{etudiantMbean.allAgences}" itemValue="#{itemAgence}" itemLabel="#{itemAgence.villeAgence} #{itemAgence.nomAgence}"/>
                                    </h:selectOneMenu>
                                    <h:commandButton value="Mettre à jour" action="#{etudiantMbean.update()}"/><h:commandButton value="Retour" action="EtudiantAffiche.xhtml"/>
                                </h:panelGrid>
                            </h:form>
                        </f:view>
    Le problème est que lorsque je clique sur le bouton "Mettre à jour" ça ne modifie pas mais ça fait plustot un nouvel enregistrement dans la basse de données.

    Le code source de la méthode update est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public String update(){
            etudiantFacade.updateEtudiant(etudiant);
            return "EtudiantAffiche";
        }
    l'enterprise bean ici appelle la méthode updateEtudiant elle même contenue dans le session bean EtudiantFacade et le code source de cette méthode est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public void updateEtudiant(Etudiant etudiant){
            em.merge(etudiant);
        }

    Je n'y comprend surtout rien surtout qu'il est à noter que lorsque je clique sur modifier, la page EtudiantDetails.xhtml s'ouvre bien avec les paramètres de l'étudiant à modifier mais la barre d'adresse du navigateur référence qu'on est sur la page EtudiantAffiche.xhtml. Et quand on clique sur mettre à jour ça affiche bien le datatable mais la barre d'adresse du navigateur référence qu'on est sur la page EtudiantDetails.xhtml.

    Croyez moi j'y comprend rien!

    SVP si quelqu'un a déjà été confronté à ce genre de problème je le prie de m'aider.

    Merci d'avance pour tout.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    Salut

    j'ai finalement pu résoudre le problème en ajoutant un inputText dans la page EtudiantDetails.xhtml pour le champ de la clé primaire car quand la clé primaire n'est pas là, ça parait pour un nouvel enregistrement.

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

Discussions similaires

  1. Mettre à jour une liaison dans une présentation
    Par pcastelin dans le forum VBA PowerPoint
    Réponses: 1
    Dernier message: 11/05/2010, 05h24
  2. mettre à jour une ligne
    Par Rniamo dans le forum C
    Réponses: 16
    Dernier message: 09/12/2007, 12h50
  3. [DOM] Mettre à jour une données dans un noeud
    Par eexit dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 20/08/2007, 14h23
  4. Réponses: 1
    Dernier message: 16/05/2007, 20h31
  5. Comment mettre à jour une ligne sans doublon via déclencheur
    Par fuelcontact dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/08/2004, 15h56

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