Bonjour,
J'ai un problème avec un CommandButton pour valider un formulaire de modification des utilisateurs.
Mon commandButton n'exécute pas ma méthode dans mon beans... et je ne comprend pas poourquoi ?
Voici mon code :
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:p="http://primefaces.org/ui" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"> <h:head> <title>Modula Master View</title> <link rel="shortcut icon" type="image/png" href="#{request.contextPath}/resources/default/images/icon.png" /> </h:head> <h:body onload="#{login.check()}"> <h:outputStylesheet library="default" name="css/Style_Compte.css"/> <h:outputStylesheet library="default" name="css/Style_Main.css"/> <h:outputScript library="default" name="js/JS.js"/> <h:outputStylesheet name="primeicons/primeicons.css" library="primefaces" /> <!-- Liste Utilisateurs --> <div class="lUser" id="utilisateur" style="display: none"> <h:form id="mainForm" rendered="#{(login.user.droit == 5 or login.user.droit == 10)}"> <p:growl id="growl" showDetail="true" closable="true" life="2500"/> <p:dataTable var="listuser" value="#{userListAdmin.userData}" widgetVar="userTable" emptyMessage="Aucun utilisateur trouvé" filteredValue="#{userListAdmin.filtreuserData}" globalFilterFunctionr="#{userListAdmin.filterFunction}" selectionMode="single" rowKey="#{listuser.login}" selection="#{userListAdmin.selectedUser}" id="userTable"> <p:ajax event="rowSelect" update="mainForm:userDetail" /> <p:ajax event="rowSelect" update="mainForm:userDetailEdit" /> <f:facet name="header"> <h2>Liste des utilisateurs</h2> <p:outputPanel style="text-align: left"> <h:outputText value="Recherche : " /> <p:inputText id="globalFilter" onkeyup="PF('userTable').filter()" style="width: 150px" placeholder="Recherche"/> </p:outputPanel> </f:facet> <p:column headerText="Login" filterBy="#{listuser.login}"> <h:outputText value="#{listuser.login}"/> </p:column> <p:column headerText="Nom" filterBy="#{listuser.nom}"> <h:outputText value="#{listuser.nom}"/> </p:column> <p:column headerText="Prénom" filterBy="#{listuser.prenom}"> <h:outputText value="#{listuser.prenom}"/> </p:column> <p:column headerText="Droit" filterBy="#{listuser.lblDroit}"> <h:outputText value="#{listuser.lblDroit}"/> </p:column> <p:column headerText="E-Mail" filterBy="#{listuser.mail}"> <h:outputText value="#{listuser.mail}"/> </p:column> </p:dataTable> <p:contextMenu for="userTable"> <p:menuitem value="Information" icon="pi pi-search" oncomplete="PF('userDialog').show()"/> <p:menuitem value="Modifier" icon="pi pi-pencil" oncomplete="PF('userDialogEdit').show()"/> <p:menuitem value="Supprimer" icon="pi pi-times"/> </p:contextMenu> <p:dialog header="Information de l'utilisateur" widgetVar="userDialog" modal="true" resizable="false"> <p:outputPanel id="userDetail" style="text-align: center;"> <p:panelGrid columns="2" rendered="#{not empty userListAdmin.selectedUser}" columnClasses="label,value"> <h:outputText value="Login : "/> <h:outputText value="#{userListAdmin.selectedUser.login}"/> <h:outputText value="Nom : "/> <h:outputText value="#{userListAdmin.selectedUser.nom}"/> <h:outputText value="Prénom : "/> <h:outputText value="#{userListAdmin.selectedUser.prenom}"/> <h:outputText value="Droit : "/> <h:outputText value="#{userListAdmin.selectedUser.lblDroit}"/> <h:outputText value="E-Mail : "/> <h:outputText value="#{userListAdmin.selectedUser.mail}"/> </p:panelGrid> </p:outputPanel> </p:dialog> <p:dialog header="Modification de l'utilisateur" widgetVar="userDialogEdit" modal="true" resizable="false"> <p:outputPanel id="userDetailEdit" style="text-align: center;"> <p:panelGrid columns="2" rendered="#{not empty userListAdmin.selectedUser}" columnClasses="label,value"> <h:outputLabel for="login" value="Login : "/> <p:inputText value="#{userListAdmin.selectedUser.login}" style="width: 300px" label="login" disabled="true"/> <h:outputText for="mdp" value="Mot de passe : "/> <p:inputText type="password" value="#{userListAdmin.selectedUser.mdp}" style="width: 300px" label="mdp" disabled="true"/> <h:outputText for="nom" value="Nom : "/> <p:inputText value="#{userListAdmin.selectedUser.nom}" style="width: 300px" label="nom"/> <h:outputText for="prenom" value="Prénom : "/> <p:inputText value="#{userListAdmin.selectedUser.prenom}" style="width: 300px" label="prenom"/> <h:outputText for="droit" value="Droit : "/> <p:inputText value="#{userListAdmin.selectedUser.lblDroit}" style="width: 300px" label="droit" disabled="true"/> <h:outputText for="mail" value="E-Mail : "/> <p:inputText value="#{userListAdmin.selectedUser.mail}" style="width: 300px" label="mail"/> <f:facet name="footer"> // Problème ici ... <p:commandButton id="btnfooter" ajax="true" action="#{userListAdmin.updateUtilisateur()}" value="Modifier" update="growl" /> </f:facet> </p:panelGrid> </p:outputPanel> </p:dialog> </h:form> </div> </h:body> </html>Merci d'avance pour votre aide.
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 package fr.modula.managedBean; import java.io.Serializable; import java.util.ArrayList; import java.util.Locale; import javax.annotation.PostConstruct; import javax.faces.application.FacesMessage; import javax.faces.application.FacesMessage.Severity; import javax.faces.bean.ManagedBean; import javax.faces.context.FacesContext; import javax.faces.view.ViewScoped; import fr.modula.beans.User; import fr.modula.beans.bdd.DAOFactory; @ManagedBean @ViewScoped public class UserListAdmin implements Serializable{ /** * */ private static final long serialVersionUID = 3262582066431200564L; private ArrayList<User> userData = new ArrayList<User>(); private ArrayList<User> filtreuserData; private User selectedUser; @PostConstruct private void postConstruct() { DAOFactory DAO = DAOFactory.getInstance(); userData = DAO.User().getListUserGeneral(); } public ArrayList<User> getUserData() { return userData; } public ArrayList<User> getFiltreuserData() { return filtreuserData; } public void setFiltreuserData(ArrayList<User> filtreuserData) { this.filtreuserData = filtreuserData; } public User getSelectedUser() { return selectedUser; } public void setSelectedUser(User selectedUser) { this.selectedUser = selectedUser; } public boolean filterFunction(Object value, Object filter, Locale locale) { String filterText = (filter == null) ? null : filter.toString().trim().toLowerCase(); if (filterText == null || filterText.equals("")) { return true; } User user = (User) value; return user.getLogin().toLowerCase().contains(filterText) || user.getNom().toLowerCase().contains(filterText) || user.getPrenom().toLowerCase().contains(filterText) || user.getLblDroit().toLowerCase().contains(filterText) || user.getMail().toLowerCase().contains(filterText); } public void updateUtilisateur() { System.out.println("1"); if(selectedUser.getLogin() != "" && selectedUser.getMdp() != "" && selectedUser.getNom() != "" && selectedUser.getPrenom() != "" && selectedUser.getMail() != "") { try { DAOFactory.getInstance().User().updateUser(selectedUser.getNom(), selectedUser.getPrenom(), selectedUser.getMail(), selectedUser.getMdp(), selectedUser.getLogin()); } catch (Exception e) { // TODO: handle exception addMessage(FacesMessage.SEVERITY_ERROR, "Erreur", "Impossible de mettre à jour les données"); } addMessage(FacesMessage.SEVERITY_INFO, "Information", "Les données ont été mises à jour"); } } public void addMessage(Severity severity ,String entete, String message) { FacesMessage sendMessage = new FacesMessage(severity, entete, message); FacesContext.getCurrentInstance().addMessage(null, sendMessage); } }
Partager