bonjour,
Je développe une application web avec le framework struts.
J'essaie de mettre en place la validation des formulaires grâce au plug-in struts mais les tutoriaux que j'ai trouvé sont brefs, incomplets et divergents.
voici l'état actuel de ma config :
j'ai ces 4 lignes dans mon struts-config.xml :
1 2 3 4
| <message-resources parameter="messages" />
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/org/apache/struts/validator/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in> |
un fichier validation.xml dans le dossier WEB-INF :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation// DTD Commons Validator Rules Configuration 1.0//EN" "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">
<form-validation>
<formset>
<form name="loginForm">
<field property="login" depends="required">
<arg0 key="login.login"/>
</field>
<field property="password" depends="required">
<arg0 key="login.password"/>
</field>
</form>
</formset>
</form-validation> |
un fichier messages.properties a la racine de src :
1 2 3 4 5 6 7 8 9 10 11 12
| # Error messages for Validator framework validations
errors.required={0} doit être rempli.
errors.minlength={0} doit comporter au moins {1} caractères.
errors.maxlength={0} doit comporter au plus {2} caractères.
errors.invalid={0} est invalide.
errors.integer={0} doit être un entier.
errors.float={0} doit être un nombre décimal.
errors.range={0} doit être dans l'interval {1} à {2}.
errors.email={0} n'est pas une adresse mail valide.
login.login=login
login.password=mot de passe |
j'ai une classe LoginForm qui hérite de ValidatorForm et une classe LoginAction.
tout ca déclaré correctement dans mon struts-config.xml.
dans ma page jsp j'ai un formulaire :
1 2 3 4 5
| <html:form action="/Login" method="post" onsubmit="return validateLoginForm(this)">
<html:text property="login" size="7"/>
<html:password property="password" size="7"/>
<html:submit property="submit" value="se connecter"/>
</html:form> |
et dans le header j'ai :
<html:javascript formName="loginForm"/>
les taglibs sont incluses et toutes les librairies de struts 1.3.8 sont dans le dossier lib.
lorsque j'affiche ma page jsp, il trouve bien les fichiers cités ci dessus et me génère bien du code javascript (de plusieurs centaines de lignes) avec la bonne fonction validateLoginForm(form).
cependant, lorsque les champs sont vides et que je clique sur "se connecter", il envoie le formulaire (donc la fonction javascript ne semble pas marcher) et le serveur d'application (jboss) affiche ceci dans la console :
1 2 3 4
| 14:02:39,133 INFO [ComposableRequestProcessor] Initializing composable request processor for module prefix ''
14:02:39,168 WARN [ValidatorResources] Form 'LoginForm' not found for locale 'fr'
14:02:39,170 INFO [CreateAction] Initialize action of type: fr.ifsic.emedia.presentation.struts.actions.LoginAction
14:37:26,405 WARN [ValidatorResources] Form 'LoginForm' not found for locale 'fr' |
Je ne sais pas ce que j'ai oublié ne mettre pour que ca fonctionne, si vous pouviez m'éclaircir, ca m'aiderait un peu.
Merci d'avance
Partager