Bonjour,
J'ai un problème dans la validation d'un formulaire, dans mon fichier struts-config.xml j'ai le formulaire suivant:
et aussi la localisation des fichier de validation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <form-beans> <!-- Si nous validons de forme dynamique le formulaire, alors nous navons pas besoin de crée les les clase qui dérive de ActionForm. --> <form-bean name="loginForm" type="org.apache.struts.validator.DynaValidatorForm"> <form-property name="nombre" type="java.lang.String"></form-property> <form-property name="password" type="java.lang.String"></form-property> </form-bean> </form-beans>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" /> </plug-in>
voici le contenu du fichier validation.xml en relation avec ce 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
23
24
25
26
27
28
29
30
31
32
33
34 <form-validation> <formset> <form name="loginForm"> <field property="nombre" depends="required, minlength, maxlength"> <arg0 key="label.nombre" /> <arg1 name="minlength" key="${var:minlength}" resource="false"/> <arg2 name="maxlength" key="${var:maxlength}" resource="false"/> <var> <var-name>minlength</var-name> <var-value>3</var-value> </var> <var> <var-name>maxlength</var-name> <var-value>50</var-value> </var> </field> <field property="password" depends="required, minlength,maxlength"> <arg0 key="label.password" /> <arg1 name="minlength" key="${var:minlength}" resource="false" /> <arg2 name="maxlength" key="${var:maxlength}" resource="false" /> <var> <var-name>minlength</var-name> <var-value>3</var-value> </var> <var> <var-name>maxlength</var-name> <var-value>30</var-value> </var> </field> </form> </formset> </form-validation>
dans ma classe qui a pour but de faire des opérations sur ce formulaire j'ai:
je pensais avoir tout bien défini, mais j'ai un jolie message d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 DynaValidatorForm myform = (DynaValidatorForm) form; System.out.println("Nom: " + myform.get("nombre")); System.out.println("Prénom :" + myform.get("password"));
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 SEVERE: reflection: org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest) java.lang.NoSuchMethodException: org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, org.apache.commons.validator.Validator, javax.servlet.http.HttpServletRequest) at java.lang.Class.getMethod(Unknown Source) at org.apache.commons.validator.Validator.validateFieldForRule(Validator.java:401) at org.apache.commons.validator.Validator.validateField(Validator.java:544) at org.apache.commons.validator.Validator.validate(Validator.java:582) at org.apache.struts.validator.DynaValidatorForm.validate(DynaValidatorForm.java:151) at org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:942) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:255) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Unknown Source)
Je vous remercie d'avance pour une possible piste.
Partager