Bonjour,
Je me suis créé une règle de validation, Struts ne semble pas vouloir la tester. Dans mon exemple, seul la regle required classique est testée, pas la mienne. Quand je passe en mode débug, je vois qu'il ne passe pas dans ma regle de validation, savez vous pourquoi? Où est mon erreur?
Merci pour votre aide!
J'ai déclaré ma règle dans validators-rules.xml :
Dans validation.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <validator name="notFound" classname="com.lecorre.validator.TestExist" method="validateExist" 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.userNotExist"/>
Et ma règle est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <form name="login"> <field property="login" depends="required,notFound"> <arg key="loginForm.username"/> </field>
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 public class TestExist implements Serializable { public static boolean validateExist(Object bean, ValidatorAction va, Field field, ActionMessages errors, Validator validator, HttpServletRequest request){ LoginDAO lDAO = new LoginDAO(); if (lDAO.loadLogin(ValidatorUtils.getValueAsString(bean,field.getProperty()))==null) { ActionMessage actionMessage2 = Resources.getActionMessage(request, va, field); ActionMessage actionMessage = actionMessage2; errors.add(field.getKey(), actionMessage); return false; } return true; } }
Partager