Bonjour,
j'ai suivi un exemple du livre "Développement Java sous STRUTS" de l'ENI pour me faire une règle de validation privée.
Je précise que mes autres règles de validation fonctionnent, donc j'ai bien compris la configuration du plugin Validator.
voici la définition de ma règle :
validator-rules.xml
ValideEni.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <validator name="yesno" classname="fr.edition.eni.validator.ValideEni" method="valideLoisirs" 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" msg="errors.yesno"/>
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
16
17
18
19
20
21 public class ValideEni implements Serializable{ private static final long serialVersionUID = 1L; public static boolean valideLoisirs(Object bean, ValidatorAction va, Field field, ActionMessages errors, Validator validator, HttpServletRequest request){ String validChamp = ValidatorUtils.getValueAsString(bean,field.getProperty()); System.out.println(validChamp); if(!validChamp.equalsIgnoreCase("Y") && !validChamp.equalsIgnoreCase("N")){ errors.add(field.getKey(),Resources.getActionMessage(request,va,field)); return false; } return true; } }
le validator "required" fonctionne bien mais si je saisi autre chose que "y" ou "n" ça marche quand même, alors que le validator "yesno" devrait me bloquer...
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 <form name="livreForm"> <field property="titre" depends="required"> <arg key="auteur.titre"/> </field> <field property="auteur" depends="required"> <arg key="auteur.nom"/> </field> <field property="pret" depends="required,yesno"> <arg key="auteur.pret"/> </field> <field property="loisirs" depends="multirequired"> </field> </form>
où est mon erreur ? je ne vois vraiment pas...
Partager