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 :

Effacer un enregistrement à l'aide d'un bouton


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 106
    Par défaut Effacer un enregistrement à l'aide d'un bouton
    Bonjour,

    J'ai un problème lors de la suppression d'un objet :

    Nom : delete.JPG
Affichages : 418
Taille : 57,8 Ko

    Mon Managed Bean:
    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
    public class RatManagedBean implements Serializable {
     
        /** The Constant serialVersionUID. */
        private static final long serialVersionUID = 1L;
     
        @Autowired
        RatService ratService;
     
        private List<RatEntity> ratList;
        private String ratType;
        private Integer ratCode;
        private RatEntity selectedRat;
     
        @PostConstruct
        public void init() throws DAOException {
            System.out
                    .println("********************* in*****************************it*************");
     
            ratList = new ArrayList<RatEntity>();
            ratList.addAll(ratService.findAllRats());
     
        }
     
        public String addRat() throws DAOException {
            RequestContext context = RequestContext.getCurrentInstance();
            RatEntity rat = new RatEntity(ratCode, ratType);
            try {
                ratService.insertRat(rat);
                reset();
                ratList.add(rat);
                return "index.xhtml ?faces-redirect=true";
            } catch (DAOException e) {
                FacesContext context1 = FacesContext.getCurrentInstance();
                context1.addMessage(null, new FacesMessage("Erreur!",
                        "L'ajout du RAT a échoué"));
                context.addCallbackParam("add", false);
                e.printStackTrace();
            }
            return "error.xhtml ?faces-redirect=true";
        }
     
     
        public void deleteRat(RatEntity selectedRat) throws DAOException{
     
            try {
                ratService.deleteRat(selectedRat);
                ratList.remove(selectedRat);
            } catch (DAOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
     
        }
     
        public List<RatEntity> getRatList() {
            return ratList;
        }
     
        public void setRatList(List<RatEntity> ratList) {
            this.ratList = ratList;
        }
     
        public String getRatType() {
            return ratType;
        }
     
        public void setRatType(String ratType) {
            this.ratType = ratType;
        }
     
        public Integer getRatCode() {
            return ratCode;
        }
     
        public void setRatCode(Integer ratCode) {
            this.ratCode = ratCode;
        }
     
        public RatEntity getSelectedRat() {
            return selectedRat;
        }
     
        public void setSelectedRat(RatEntity selectedRat) {
            this.selectedRat = selectedRat;
        }
     
        /**
         * reset Add form method
         */
        public void reset() {
            this.setRatType("");
        }
    }
    ma page 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
    <h:form id="form">
                <p:dataTable id="ratTable" var="rat" value="#{ratMB.ratList}" styleClass="userDataTableStyle"
                            paginator="true" rows="10" selection="#{ratMB.selectedRat}"  rowKey="#{rat.code}">
                             paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                             rowsPerPageTemplate="5,10">
                <f:facet name="header">
                        Liste des Radio Acess Type
                    </f:facet>
                     <p:column selectionMode="single" style="width:16px;text-align:center"/>
                        <p:column headerText="Code du Rat" sortBy="#{rat.code}">
                <h:outputText value="#{rat.code}"></h:outputText>
                </p:column>
                <p:column headerText="Type du RAT" sortBy="#{rat.type}">
                <h:outputText value="#{rat.type}"></h:outputText>
                </p:column>
     
                <f:facet name="footer">
                    <p:commandButton value="Ajouter" oncomplete="newRatDialog.show()" icon="ui-icon-star" title="Ajouter un nouvel Radio Access Type" />
                    <p:commandButton value="Supprimer" onclick="confirmation.show()" update="ratTable" icon="ui-icon-trash"/>
                </f:facet>
            </p:dataTable> 
    </h:form>
            <p:dialog header="Créer un nouvel Radio Access Type" widgetVar="newRatDialog" resizable="false" id="newRatDialog">
                <h:form id="newdirecForm">
                    <p:panelGrid id="displayNewRat" columns="4" style="margin:0 auto;">
                        <h:outputText value="Code :"></h:outputText>
                        <p:inputText value="#{ratMB.ratCode}" />
                        <h:outputText value="Type :"></h:outputText>
                        <p:inputText value="#{ratMB.ratType}" />
     
     
                        <f:facet name="footer">
                            <p:commandButton value="Valider" update=":form:ratTable"
                                oncomplete=" handleSubmitRequest(xhr, status, args, 'newActiviteDlg','newdirecForm');"
                                action="#{ratMB.addRat}" />
                            <p:commandButton type="Vider" value="Annuler" />
                        </f:facet>
                    </p:panelGrid>
                </h:form>
            </p:dialog>
     
            <p:dialog id="confirmDialog"  header="Confirmation de suppression"  widgetVar="confirmation">  
                      <table width="100%" border="0"  cellspacing="0" >
     
                          <tr >
                           <td style="border: 0; "> <h:outputText value="Voulez vous vraiment supprimer le RAT"></h:outputText></td>
     
                         </tr>
                         <tr></tr> <tr></tr>
     
                              <tr>
                                <td colspan="3" align="right" style="border: 0;  ">
                                    <hr style="color:orange"> </hr>
                                </td>
                              </tr>
                              <tr></tr>   <tr></tr>
                            <tr>
                                <td colspan="2"  style="border: 0; ">
                                  <p:commandButton  value="OUI" update=":form:ratTable" oncomplete="confirmation.hide()"  
                                actionListener="#{ratMB.deleteRat}" />  
                              <p:commandButton value="NON" onclick="confirmation.hide()" type="button" />     
                                </td>
     
                            </tr>
                      </table>
     
              </p:dialog>
    j'ai cette erreur :
    SEVERE: Received 'javax.el.MethodNotFoundException' when invoking action listener '#{ratMB.deleteRat}' for component 'j_idt23'
    javax.faces.event.MethodExpressionActionListener processAction
    SEVERE: javax.el.MethodNotFoundException: Method not found: com.xxxx.beans.RatManagedBean@1481484b.deleteRat()
    Quelqu'un saurait-il m'indiquer comment résoudre ce problème ?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    C'est normal, il n'existe pas de méthode deleteRat() mais une méthode deleteRat(RatEntity selectedRat)...

    D'un point de vue plus général, comme tu utilises Primefaces, tu devrais utiliser l'objet <p:confirmDialog>, plus simple à mettre en oeuvre et qui te permettrait de faire plus de choses
    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
     
    <p:dataTable id="maListe" ... var="item" ...>
    ...
    <p:commandButton value="Supprimer" actionListener="#{viewManager.deleteRat(item)}" update="maListe">
     
            <p:confirm header="Confirmation" message="Voulez-vous supprimer le rat ?" icon="ui-icon-alert" />
     
        </p:commandButton>
    ...
    <p:dataTable>
     
     
        <p:confirmDialog global="true" showEffect="fade" hideEffect="explode">
     
            <p:commandButton value="Yes" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
     
            <p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
     
        </p:confirmDialog>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 106
    Par défaut
    merci Obutterlin pour ta réponse

    j'ai réglé ma page comme vous m'avez expliqué
    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
     
    <h:form id="form">
                <p:dataTable id="ratTable" var="rat" value="#{ratMB.ratList}" styleClass="userDataTableStyle"
                            paginator="true" rows="10" selection="#{ratMB.selectedRat}"  rowKey="#{rat.code}">
    			             paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
    			             rowsPerPageTemplate="5,10">
    			<f:facet name="header">
                        Liste des Radio Acess Type
                    </f:facet>
                     <p:column selectionMode="single" style="width:16px;text-align:center"/>
                    	<p:column headerText="Code du Rat" sortBy="#{rat.code}">
    			<h:outputText value="#{rat.code}"></h:outputText>
    			</p:column>
    			<p:column headerText="Type du RAT" sortBy="#{rat.type}">
    			<h:outputText value="#{rat.type}"></h:outputText>
    			</p:column>
     
    			<f:facet name="footer">
    				<p:commandButton value="Ajouter" oncomplete="newRatDialog.show()" icon="ui-icon-star" title="Ajouter un nouvel Radio Access Type" />
                    <p:commandButton value="Supprimer" actionListener="#{ratMB.deleteRat(rat)}" update="ratTable">
                           <p:confirm header="Confirmation" message="Voulez-vous supprimer le rat ?" icon="ui-icon-alert" />
                    </p:commandButton>
    			</f:facet>
    		</p:dataTable> 
     
    		<p:confirmDialog global="true" showEffect="fade" hideEffect="explode">
     
            <p:commandButton value="Yes" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
     
            <p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
     
           </p:confirmDialog>
     
     
    </h:form>
    et la méthode de delete(rat) dans mon managedBean :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     @Transactional
    	 public void deleteRat(RatEntity Selectedrat){
    		 entityManager.remove(Selectedrat);
    	 };
    mais dans la page xhtml j'ai un warning que syntax eroor in EL je travaille avec eclipse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <p:commandButton value="Supprimer" actionListener="#{ratMB.deleteRat(rat)}" update="ratTable">
    commenet le faire
    merci

  4. #4
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 106
    Par défaut
    et l'objet selected ne se supprime pas
    comment le faire svp est ce que j'ai des fautes dans mon code

    merci

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Le warning n'est pas grave, pour le reste, peux-tu te mettre en debug et voir si le "rat" passé est bien le bon ?
    Si oui, le problème vient de la couche jpa, tu peux déjà mettre l'attribut show sql à true dans le persistence.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <property name = "hibernate.show_sql" value = "true" />
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 106
    Par défaut
    il m'indique que l'entity est à null donc il ne le supprime pas
    comment le faire pour supprimer à partie d'une selection d'un objet
    merci

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/06/2006, 08h55
  2. [C#] insertion tableau à l'aide d'un bouton
    Par liliprog dans le forum ASP.NET
    Réponses: 2
    Dernier message: 17/06/2005, 09h33
  3. [VB.NET] Naviguer dans un DATAGRID a l'aide de 2 boutons
    Par stephane93fr dans le forum Windows
    Réponses: 3
    Dernier message: 13/06/2005, 12h39
  4. Effacer l'enregistrement courant?
    Par juliea dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/12/2004, 10h48
  5. ouvrir word a l'aide d'un bouton
    Par Loule dans le forum MFC
    Réponses: 12
    Dernier message: 19/02/2004, 14h55

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