Salut,

J'ai un problème au niveau de login, lorsque j'ai saisi l'identifiant et le mot de passe, il n'affiche pas la page suivante, il reste dans la même page.
J'ai une Entity Utilisateur et l’interface utilisateurDao qui contient les deux méthodes.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
public Utilisateur findByUtilisateur(Utilisateur utilisateur);
    public Utilisateur login(Utilisateur utilisateur);
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
public class utilisateurDaoImpl implements utilisateurDao {
 
    @Override
    public Utilisateur findByUtilisateur(Utilisateur utilisateur) {
        Utilisateur model = null;
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        String sql = "from Utilisateur as u where u.login = '" + utilisateur.getLogin() + "'";
        try {
            session.beginTransaction();
            model = (Utilisateur) session.createQuery(sql).uniqueResult();
            session.beginTransaction().commit();
        } catch (HibernateException e) {
            session.beginTransaction().rollback();
        }
        return model;
    }
 
    @Override
    public Utilisateur login(Utilisateur utilisateur) {
        Utilisateur model = this.findByUtilisateur(utilisateur);
        if (model != null) {
            if (!utilisateur.getMotpasse().equals(model.getMotpasse())) {
                model = null;
            }
        }
        return model;
    }
 
}

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
@Named(value = "loginBean")
@SessionScoped
public class loginBean implements java.io.Serializable {
 
    private Utilisateur utilisateur;
    private utilisateurDao utilisateurdao;
 
    public void login(ActionEvent event) {
        RequestContext context = RequestContext.getCurrentInstance();
        FacesMessage message = null;
        boolean loggedIn = false;
        String path = "";
        this.utilisateur = this.utilisateurdao.login(this.utilisateur);
        if (this.utilisateur != null) {
            loggedIn = true;
            FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("login", this.utilisateur.getLogin());
            message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Bienvenue", this.utilisateur.getLogin());
            path = MyUtil.basepathlogin() + "views/initiation.xhtml";
        } else {
            loggedIn = false;
            message = new FacesMessage(FacesMessage.SEVERITY_WARN, "Loggin Error", "Invalid credentials");
            if (this.utilisateur == null) {
                this.utilisateur = new Utilisateur();
            }
        }
 
        FacesContext.getCurrentInstance().addMessage(null, message);
        context.addCallbackParam("loggedIn", loggedIn);
        context.addCallbackParam("path", path);
    }
 
    public loginBean() {
        this.utilisateurdao = new utilisateurDaoImpl();
        if (this.utilisateur == null) {
            this.utilisateur = new Utilisateur();
        }
    }
 
    public Utilisateur getUtilisateur() {
        return utilisateur;
    }
 
    public void setUtilisateur(Utilisateur utilisateur) {
        this.utilisateur = utilisateur;
    }
 
    public utilisateurDao getUtilisateurdao() {
        return utilisateurdao;
    }
 
    public void setUtilisateurdao(utilisateurDao utilisateurdao) {
        this.utilisateurdao = utilisateurdao;
    }
 
}
Code xml : 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
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"  
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://xmlns.jcp.org/jsf/core">
    <h:head>  
        <link href="#{appBean.baseUrl}resources/css/login.css" type="text/css" rel="stylesheet"/>
 
    </h:head>  
    <h:body>  
        <div class="conteiner">
            <p:growl id="growl" showDetail="true" life="3000" />
            <h:form id="fromLogin">
                <p:panel header="Connexion">
                    <h:panelGrid columns="2" cellpadding="5">
                        <h:outputLabel for="username" value="Identifiant:" />
                        <p:inputText id="username" value="#{loginBean.utilisateur.login}" required="true" label="username" />
 
                        <h:outputLabel for="password" value="Mot de passe:" />
                        <p:password id="password" value="#{loginBean.utilisateur.motpasse}" required="true" label="password" />
 
                        <f:facet name="footer">
                            <p:commandButton id="loginButton" value="Se Connecter" update=":growl" actionListener="#{loginBean.login(event)}" icon="icon-login" 
                                             oncomplete="handleLoginRequest(xhr, status, args)" />
                        </f:facet> 
                    </h:panelGrid>
                </p:panel>
            </h:form>
        </div>  
        <script type="text/javascript">
            function handleLoginRequest(xhr, status, args) {
                if (args.validationFailed || !args.loggedIn) {
                    jQuery('#fromLogin').effect("shake", {times: 3}, 100);
                }
                else {
                    location.href = args.path;
                }
            }
        </script>
    </h:body>  
</html>