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>
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);
	}
}
Merci d'avance pour votre aide.