Bonjour,
Je souhaite mettre en place une validation sur un formulaire de login.
Donc je souhaitais utiliser le plug in validator, je rencontre donc un problême, quand je submit, j'ai une erreur :
"Cannot find bean: "theso" in any scope". donc en gros, il recupere pas tout lors du rechargement de la page....
Pour infos, je controlais le form avec un simple javascript et ca fonctionnait impeccable, mais pour le faire cote serveur...je suis embeter a cause de ca...
j'ai suivi les differents post du forum a ce sujet...et je suis toujours bloque...
Quelqu'un aurait il deja eu ce problême ???
Voila mes codes :
le html :
le form:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <div> <strong>Administration :</strong> <html:form action="/login" focus="login" onsubmit="return validateloginForm(this);"> <div align="right" style="border: double; 1px red; margin-right: 80px;"> Login:<input name="login" type="text" value="" size="15"/><br/> <html:errors name="error.login" /> Password:<input name="password" type="password" value="" size="15"/><br/> <html:errors name="error.password" /> <html:submit >Connection</html:submit> </div> </html:form> </div>
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 public class LoginForm extends ValidatorForm { private static final long serialVersionUID = 1L; /** login property */ private String login; /** password property */ private String password; 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; } }
l'Action :
le validator rules :
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 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws SQLException, NoSuchAlgorithmException{ RequeteHibernate req = new RequeteHibernate(); Vector<NodeThesoMT> thesaurus = req.getThesaurus(); //recuperation des thesaurus et Microthesaurus request.setAttribute("theso",thesaurus); //c'est celui la qu'il ne retrouve pas lord du rechargemment // if(login.equalsIgnoreCase("bruno")&& password.equalsIgnoreCase("bruno")){ // return mapping.findForward("admin"); // } // // return mapping.findForward("utilisateur"); LoginForm loginForm = (LoginForm) form; String forward = null; String username = null; String encodedPassword = null; int role = 0; // password saisie; String textPassword = loginForm.getPassword(); // login saisie String login=loginForm.getLogin(); UtilisateurDAO dao = new UtilisateurDAO(); Utilisateur user = new Utilisateur(); List userList = dao.findByUsername(login); if (userList.size() > 0) { for(Iterator iter = userList.iterator(); iter.hasNext();) { user = (Utilisateur) iter.next(); username = user.getUsername(); encodedPassword = user.getPassword(); //pasword encode en base role = user.getIdRole(); if(MD5Password.testPassword(textPassword, encodedPassword) && login.equalsIgnoreCase(username)){ //forward selon le role if(role == 1){ forward = "admin"; }else if(role == 2){ forward = "pro"; }else if(role == 3){ forward = "utilisateur"; } } } } request.setAttribute("username", username); return mapping.findForward(forward); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <formset language=""> <form name="loginForm"> <field property="login" depends="required"> <msg name="required" key="error.login"/> </field> <field property="password" depends="required"> <msg name="required" key="error.password"/> </field> </form> </formset>
et enfin, le struts.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <action attribute="loginForm" input="/main.jsp" name="loginForm" path="/login" type="action.LoginAction" validate="true"> <set-property property="cancellable" value="true" /> <forward name="admin" path="/administration.jsp" /> <forward name="pro" path="/professionnel.jsp" /> <forward name="utilisateur" path="/main.jsp" /> </action>
Partager