bonjour,
J'ai un pblm avec mon Validator car je n'arrive pas à lui faire afficher les messages voulus. En effet il affiche rien du tout....
Voici les bouts de codes que j'ai modifiés pour "installer" le validator:
struts-config:
validator-rules.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <plug-in className="org.apache.struts.tiles.TilesPlugin"> <set-property property="definitions-config" value="/WEB-INF/gabaritConges-tiles.xml" /> <set-property property="definitions-debug" value="2" /> <set-property property="definitions-parser-details" value="2" /> <set-property property="definitions-parser-validate" value="true" /> </plug-in> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" /> </plug-in>
validation.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
15 <form-validation> <global> <validator name="required" classname="org.apache.struts.validator.FieldChecks" method="validateRequired" methodParams="java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, javax.servlet.http.HttpServletRequest" msg="errors.required"/> </global> </form-validation>
login.jsp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <form-validation> <formset> <form name="loginForm"> <field property="login" depends="required"> </field> </form> </formset> </form-validation>
entête du formulaire:
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 <html:form action="/login.do?event=traitement" onsubmit="return validateLoginForm(this);"> <table width="500" border="0" cellspacing="0" cellpadding="0" align="center"> <tr> <td width="115">Login:</td> <td width="215"> <html:text property="login" /> <html:errors property="login"/> </td> </tr> <tr> <td>Mot de passe:</td> <td> <html:password property="password" /> <html:errors property="password"/> </td> </tr> <tr> <td colspan="2" align="center"> <html:submit property="submit"/> </tr> </table> </html:form>
méthode faisant le traitement dans l'action:
Code : Sélectionner tout - Visualiser dans une fenêtre à part public class LoginForm extends ValidatorForm {
Si quelqu'un voit une erreur (qui doit y etre c sur
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 public ActionForward traitement( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { LoginForm loginForm = (LoginForm)form; ActionErrors erreurs = new ActionErrors(); BeanLogin retour = new BeanLogin(); retour.setLogin(loginForm.getLogin()); retour.setPassword(loginForm.getPassword()); System.out.println("login: "+loginForm.getLogin()); System.out.println("Password: "+loginForm.getPassword()); retour = LoginServices.getInstance().VerifLogin(loginForm.getLogin(),loginForm.getPassword()); if (retour.getNoDossierPers() != null) { HttpSession httpSession = request.getSession(true); httpSession.setAttribute("login",retour); //ok il existe on charge les données et on les mets en session return mapping.findForward("success"); } else{ /**/ erreurs.add("password",new ActionMessage("erreur.login.action.login.unknown")); saveMessages(request,erreurs); return mapping.findForward("echec"); } }!!) ou peut faire avancer mon scmilblick merci d'avance
Partager