Bonjour,
J'ai un objet A qui contient un attribut ab
Cet attribut est un numérique à 10 chiffres (obligatoirement), et je voudrais le tester à l'aide d'un validator sous la condition que l'objet A existe (car il est possible dans mon formulaire que A n'existe pas !)
J'ai donc fait un validator qui ressemble à cela :
Seulement ca ne fonctionne pas !, et j'ai une erreur qui ressemble à ceci :
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 <form name="monForm"> <field property="A.ab" depends="validwhen,minlength,maxlength,integer"> <arg0 name="minlength" key="${var:minlength}" resource="false"/> <arg1 name="maxlength" key="${var:maxlength}" resource="false"/> <var> <var-name>test</var-name> <var-value>(A != null)</var-value> </var> <var> <var-name>minlength</var-name> <var-value>10</var-value> </var> <var> <var-name>maxlength</var-name> <var-value>10</var-value> </var> </field> </form>
Alors est ce que j'ai une mauvaise syntaxe, une mauvaise méthode, ou pire, que ce que je cherche à faire n'est pas possible...
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 ValidatorAction.java executeValidationMethod 579 [09:48:45] [ERROR] Unhandled exception thrown during validation: Null property value for 'A' org.apache.commons.beanutils.NestedNullException: Null property value for 'A' at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:669) at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715) at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:290) at org.apache.commons.validator.util.ValidatorUtils.getValueAsString(ValidatorUtils.java:102) at org.apache.struts.validator.validwhen.ValidWhen.validateValidWhen(ValidWhen.java:103) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.commons.validator.ValidatorAction.executeValidationMethod(ValidatorAction.java:544) at org.apache.commons.validator.Field.validateForRule(Field.java:796) at org.apache.commons.validator.Field.validate(Field.java:876) at org.apache.commons.validator.Form.validate(Form.java:288) at org.apache.commons.validator.Validator.validate(Validator.java:351) at org.apache.struts.validator.ValidatorForm.validate(ValidatorForm.java:116)
Merci d'avance de votre aide !
Partager