Bonjour,
j'ai suivi ce tuto mais j'ai pas su où mettre MonAction-validation.xml(ie ici,RegisterAction-validation.xml) et package.properties(la racine de l'app).
car je sens que mon app ne prend pas en charge ces deux fichiers,
Merci d'avance
Bonjour,
j'ai suivi ce tuto mais j'ai pas su où mettre MonAction-validation.xml(ie ici,RegisterAction-validation.xml) et package.properties(la racine de l'app).
car je sens que mon app ne prend pas en charge ces deux fichiers,
Merci d'avance
bonjour,
les fichiers de validation xml doivent etre dans le meme répertoire que la classe action.
de plus, moi j'utilise l'attribut method dans la balise <action> dans struts.xml, ce qui me permet de spécifier le nom de la méthode moi meme et pas utiliser la fonction execute() qui sort de je ne sais où.
si tu suis mon exemple, le fichier validation doit etre de la forme
maclasse-monAction-validation.xml
ex :
aura pour nom de fichier de validation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <action name="Register" class="com.struts2.RegisterAction" method="uneMethodedelaclasseRegisterAction"> <result name="input">/register.jsp</result> <result type="redirectAction">register.jsp</result> </action>
RegisterAction-Register-validation.xml
bon courage a toi
Bonjour,
je pense avoir bien placé mon fichier de validation, il est bien nommé également pourtant mon formulaire se valide correctement.
PersonneAction-saveUser-validation.xml (placé dans le même répertoire que PersonneAction.java) :
mon struts.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 <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators> <field name="pseudo"> <field-validator type="requiredstring"> <message key="accueil.error.inscription"/> </field-validator> </field> <field name="pseudo"> <field-validator type="stringlength"> <param name="minLength">5</param> <message key="accueil.error.inscription"/> </field-validator> </field> </validators>
et ma jsp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <action name="saveUser" class="com.action.PersonneAction" method="save" > <result name="success" >Pages/Perso.jsp</result> <result name="input">Pages/Accueil.jsp</result> <result name="error">Pages/Accueil.jsp</result> </action>
Dans les log, il m'indique bien les erreurs de validation :
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 <html> <body> <s:form method="POST" action="saveUser"> <div class="cssAccueil_imgInscription"> <img height="100%" width="100%" src="<%=request.getContextPath()%>/Images/inscription_fond.png"/> <div class="cssAccueil_inscription"> <div class="cssAccueil_couple"> <span class="cssAccueil_label"><s:property value="getText('accueil.inscription.pseudo')" /></span> <span class="cssAccueil_texte"><s:textfield name="pseudo" id="pseudo"/></span> </div> <div class="cssAccueil_couple"> <span class="cssAccueil_label"><s:property value="getText('accueil.inscription.password')" /></span> <span class="cssAccueil_texte"><s:textfield name="password" id="password"/></span> </div> <div class="cssAccueil_couple"> <span class="cssAccueil_label"><s:property value="getText('accueil.inscription.password2')" /></span> <span class="cssAccueil_texte"><s:textfield name="password2" id="password2"/></span> </div> <div class="cssAccueil_couple"> <span class="cssAccueil_label"><s:property value="getText('accueil.inscription.nom')" /></span> <span class="cssAccueil_texte"><s:textfield name="nom" id="nom"/></span> </div> <div class="cssAccueil_couple"> <span class="cssAccueil_label"><s:property value="getText('accueil.inscription.prenom')" /></span> <span class="cssAccueil_texte"><s:textfield name="prenom" id="prenom"/></span> </div> <div class="cssAccueil_couple"> <span class="cssAccueil_label"><s:property value="getText('accueil.inscription.mail')" /></span> <span class="cssAccueil_texte"><s:textfield name="mail" id="mail" label="Mail" labelposition="left"/></span> </div> <div class="cssAccueil_couple"> <span class="cssAccueil_label"><s:property value="getText('accueil.inscription.anniversaire')" /></span> <span class="cssAccueil_texte"><s:textfield name="date_naissance" id="date_naissance"/></span> </div> <s:submit value ="Envoyer"></s:submit> <span class="cssAccueil_info_inscription"><s:property value="getText('accueil.inscription.obligatoire')" /></span> <s:if test="errors.size()>0"> <div class="cssAccueil_error"> <label><s:property value="%{getText('accueil.erreur.msgerror')}"/></label> <s:fielderror/> </div> </s:if> </div> </div> </s:form> </body> </html>
mais il execute l'action et affiche la page prévu en cas de succès.GRAVE: Validation error for pseudo:Les champs avec une * sont obligatoires
1 mars 2011 15:25:41 com.opensymphony.xwork2.validator.DelegatingValidatorContext$LoggingValidationAware addFieldError
J'ai surement oublié quelque chose quelque part, mais je ne sais pas où??
Merci.
Quel est ton problème? L'erreur ne s'affiche pas dans la page?
Partager