Salut,
Voila ce que j'aimerais faire, j'ai créé une application web et avant que mon appli web s'ouvre je voudrais que l'utilisateurs s'identifie en entrant login et mot de passe pour cela, j'ai créé un fichier xhtml avec un formulaire et un bouton qui permet de vérifier si le login et mot de passe sont correctes, si oui j'ouvre la page home de l'appli sinon je reste sur la page d'identification
voici mon problème, j'ai ma page d'identification dont le code est le suivant :
j'ai mis en rouge la ligne où il y a mon problème. En fait, lorsque je clique sur le bouton login j'appelle une méthode qui vérifie que le login et le mot de passe que l'utilisateur à entrer dans les champs textes sont dans la base de données,mais dans la méthode vérification, le login et le mot de passe sont vides.
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 <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:s="http://jboss.com/products/seam/taglib" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:ice="http://www.icesoft.com/icefaces/component" template="layout/template.xhtml"> <ui:define name="body"> <h:messages styleClass="message"/> <ice:form> <ice:panelGroup styleClass="formBorderHighlight"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td class="iceDatTblColHdr2"> <ice:outputText value="Login"/> </td> </tr> </table> <p>Entrer votre login et mot de passe</p> <div class="dialog"> <h:panelGrid columns="2" rowClasses="prop"> <ice:outputText>Login : </ice:outputText> <ice:inputText value="#{identification.login}"/> <ice:outputText>Mot de passe : </ice:outputText> <ice:inputSecret value="#{identification.motDePasse}"/> </h:panelGrid> </div> </ice:panelGroup> <div class="actionButtons"> <h:panelGrid columns="2" rowClasses="prop"> <s:button id="loginButtonId" value="Login" action="#{gestionDeDocument.verification(identification.login, identification.motDePasse)}" view="#{identification.page}"></s:button> <s:button id="enregistrement" value="Enregistrement" view="/enregistrementUtilisateur.xhtml"></s:button> </h:panelGrid> </div> </ice:form> </ui:define> </ui:composition>
Fonction java : verification
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 public void verification(String login, String motDePasse){ try{ System.err.println("je suis dans verification"); System.err.println("login = "+login); System.err.println("motDePasse = "+motDePasse); Query q = em.createQuery("select u from Utilisateur u where u.login = :login and u.motDePasse= :motDePasse"); q.setParameter("login",login); q.setParameter("motDePasse", motDePasse); Utilisateur user = (Utilisateur) q.getSingleResult(); identification.setLoggedIn(true); }catch(Exception e){ System.err.println("je suis dans le catch"); identification.setLoggedIn(false); } }
Par contre, si dans mon fichier xhtml je met à la place de s:button => ice:button avec l'attribut actionListener ça fonctionne. mais moi je suis obligé de passer par s:button pour avoir l'attribut view qui me permet de rediriger vers la page désiré
D'où peut venir ce problème ?
au cas ou, voici ma classe java identification :
Merci
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 @Name("identification") @Scope(ScopeType.SESSION) public class Identification { //Variables d'instance // login de l'utilisateur private String login; // mot de passe de l'utilisateur private String motDePasse; //page à retourner lorsque l'utilisateur s'est loggé private String page = "/login.xhtml"; // vrai si l'utilisateur est loggé faux sinon private boolean loggedIn; public Identification(){ } // les getters et les setters public String getLogin() { return login; } public void setLogin(String login) { this.login = login; } public String getMotDePasse() { return motDePasse; } public void setMotDePasse(String motDePasse) { this.motDePasse = motDePasse; } public String getPage() { return page; } public void setPage(String page) { this.page = page; } public boolean isLoggedIn() { return loggedIn; } public void setLoggedIn(boolean loggedIn) { this.loggedIn = loggedIn; } }
Partager