Bonjour , j'utilise netbeans pour developper une application entreprise (JEE) contenant une partie web .

J'utilise encore le framework JSF et la base de donnees MySQL . Ma premiere page est une page de login

à laquelle j'ai ajouté des messages d'erreur pour vérifier l'existance du username et la correspondance entre
le username et la password fournies .

Comme résultat , si j'entre le username et la password correspondant tout marche bien et je me dirige vers la deuxieme page .

Mais le probleme c'est que si j'entre un username inexistant ou une password non valide ,les messages d'erreur
ne serront pas affichés et rien ne se fait sauf la réinitialisation du champ de la password .



Le code de ma page de Login appeléé welcomeJSF.jsp est le suivant :



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
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
 
<%--
    This file is an entry point for JavaServer Faces application.
--%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
 
<%--
    This file is an entry point for JavaServer Faces application.
--%>
 
<f:view>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
            <title>JSP Page</title>
        </head>
        <body>
            <h1><h:outputText value="JavaServer Faces"/></h1>
 
            <h:form>
                <h:panelGrid columns="3">
 
                    Username: <h:inputText id="login"
                                           value="#{metier.login}"/>
                              <h:message for="welcomeJSF:login" style="color: red"/>
                    Password: <h:inputSecret id="password"
                                             value="#{metier.password}"/>
                              <h:message for="welcomeJSF:password" style="color: red"/>
                </h:panelGrid>
                <h:commandButton id="validate" value="Login" action="#{metier.validate}" type="submit" title="validate" />
            <h:commandButton id="create" value="New account" action="#{metier.create}" type="submit" title="create" />
            <h:commandLink id="list"
                           value="List"
                           action="#{metier.list}"/>
            </h:form>
        </body>
    </html>
</f:view>



Le code de la page metier (appelée metier ) est le suivant :
la méthode concerné est "validate"





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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
package metier;
 
import Ent.Client;
import Ent.ClientFacadeLocal;
import java.util.Date ;
 
import javax.ejb.EJB;
import javax.ejb.Stateless;
 
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.Resource;
import javax.faces.application.FacesMessage;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.servlet.http.HttpSession;
import javax.transaction.UserTransaction;
 
 
/**
 *
 * @author NIDHAL
 */
@Stateless
public class metier {
      public static final String Client_SESSION_KEY = "client";
 
 EntityManager persistance;
    /** Creates a new instance of NewJSFManagedBean */
 
    //@Stateless
   @EJB
    private ClientFacadeLocal cf;
    private Client c;
 
 
    private String firstname;
    private String lastname;
    private String password;
    private String retypepassword ;
    private String login;
    private String mobilephone;
    private String company;
    private String title;
    private String department;
    private String cams;
    private int rightslevel;
    private Date insertiondate;
 
 
    public metier () {}
 
    public Client getC() {
        return c;
    }
 
    public void setC(Client c) {
        this.c = c;
    }
    public ClientFacadeLocal getCf() {
        return cf;
    }
 
 
     public String getFirstname() {
        return firstname;
    }
 
    public void setFirstname(String firstname) {
        this.firstname = firstname;
    }
    public String getLastname() {
        return lastname;
    }
 
    public void setLastname(String lastname) {
        this.lastname = lastname;
    }
    public String getLogin() {
        return login;
    }
 
    public void setLogin(String login) {
        this.login = login;
    }
 
    public String getPassword() {
        return password;
    }
 
    public void setPassword(String password) {
        this.password = password;
    }
    public String getRetypepassword() {
        return retypepassword;
    }
 
    public void setRetypepassword(String retypepassword) {
        this.retypepassword = retypepassword;
    }
    public String getMobilephone() {
        return mobilephone;
    }
 
    public void setMobilephone(String mobilephone) {
        this.mobilephone = mobilephone;
    }
    public String getCompany() {
        return company;
    }
 
    public void setCompany(String company) {
        this.company = company;
    }
    public String getTitle() {
        return title;
    }
 
    public void setTitle(String title) {
        this.title = title;
    }
    public String getDepartment() {
        return department;
    }
 
    public void setDepartment(String department) {
        this.department = department;
    }
    public String getCams() {
        return cams;
    }
 
    public void setCams(String cams) {
        this.cams = cams;
    }
    public int getRightslevel() {
        return rightslevel;
    }
 
    public void setRightslevel(int rightslevel) {
        this.rightslevel = rightslevel;
    }
 
public Date getInsertiondate() {
        return insertiondate;
    }
 
    public void setInsertiondate(Date insertiondate) {
        this.insertiondate = insertiondate;
    }
public String createuser()
{
 
     FacesContext context = FacesContext.getCurrentInstance();
 
c=cf.find(login);
 
    if (c == null) {
 
    if (!password.equals (retypepassword)){
 
        FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                                           "Login Failed password and retyped password don't match !",
                                           "The password specified is not correct.");
 
        context.addMessage(null, message);
         return null;}
    c= new Client();
    int rightslevel =1 ;
    insertiondate=new Date();
    c.setFirstname(firstname);
    c.setLastname(lastname);
    c.setLogin(login);
    c.setPassword(password);
    c.setMobilephone(mobilephone);
    c.setCompany(company);
    c.setTitle(title);
    c.setDepartment(department);
    c.setCams(cams);
    c.setRightslevel(rightslevel);
    c.setInsertiondate(insertiondate);
    cf.create(c);
   return "success";
    }
    else
    {
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                                                    "Username '"
                                                      + login
                                                      + "' already exists!  ",
                                                    "Please choose a different username.");
            context.addMessage(null, message);
            return null;
        }
}
public String validate()
{
   FacesContext context = FacesContext.getCurrentInstance();
    c=cf.find(login);
 
    if (c != null) {
            if (!c.getPassword().equals(password)) {
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                                           "Login Failed!",
                                           "The password specified is not correct.");
                context.addMessage(null, message);
                return null;
            }
 
            context.getExternalContext().getSessionMap().put(Client_SESSION_KEY, cf);
            return "validate";}
         else {
            FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "Login Failed!",
                    "Username '"
                    + login
                    +
                    "' does not exist.");
            context.addMessage(null, message);
            return null;
        }
 
}
 
public String create()
{
    return "create";
}
public String modify()
{  /* c=new Client();
    c.getLogin();
    c.getFirstname();
    c.getLastname();*/
    return "modify";
}
public String update()
{
    return "updated";
}
public String remove()
{
   /* cf.remove(c);*/
    return "removed";
}
public String list()
{
    return "list";
}
}

Quelqu'un a une idée ?

Merci d'avance .