Bonjour,

Je manipule depuis très récemment (ce matin) ce petit framework "common validator". Peut-être sauriez vous éclairer ma lanterne car là, je butte... Malgré l'aide trouvée sur le Net.

J'ai mon fichier struts-config qui définit le form héritant de DynaValidatorForm :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
<form-bean name="monForm" dynamic="true" type="org.apache.struts.validator.DynaValidatorForm">
</form-bean>
J'ai mon action qui demande la validation :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<action path="/action"
	name="monForm"
	validate="true"
	type="action"
	input="/action.jsp">
		<forward name="success"	path="/success.jsp" />
</action>
J'ai défini dans ma page un champ dont j'aimerais que l'user ne rentre que des chiffres :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
<html:form action="/action">
	<input type="text" size="20" name="cards">
	<input type="submit" value="valid">
</html:form>
J'ai défini mon validation.xml comme voulant que l'user rentre un entier :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<form name="monForm">
	<field property="cards" depends="required,integer">
	<arg position="0" key="cards" resource="false"/>
	</field>
</form>
Et mes rules sont bien dans le validator-rules.xml :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
<validator name="integer"
            classname="org.apache.struts.validator.FieldChecks"
               method="validateInteger"
         methodParams="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"
              depends=""
                  msg="errors.integer"
       jsFunctionName="IntegerValidations"/>

Quand j'exécute tout ça :
- je rentre rien : il me jette à cause du "required"
- je rentre des lettres : il me jette à cause du "required"
- je rentre des chiffres : il me jette à cause du "required"

...

C'est là que je ne comprend pas trop

Merci de vos lumières