Bonjour,

J'ai un problème dans la validation d'un formulaire, dans mon fichier struts-config.xml j'ai le formulaire suivant:

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 n’avons 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>
et aussi la localisation des fichier de validation:

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:

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"));
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
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.