Bonjour,

J'essaye de valider un formulaire en suivant la méthode des validators du livre de Jean-charles Félicité sur Struts.

J'ai suivi ses instructions, mais mon formulaire se valide tout le temps, c'est à dire que la méthode execute() de l'Action correspondante au formulaire et executée à tous les coups alors qu'on ne devrais pas arriver là.

Je vous donne mes fichiers :

le struts-config.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
22
 
<struts-config>
    <form-beans>
        <form-bean name="NouvelAgentForm" type="com.myapp.struts.ActionForm.NouvelAgentForm"/>
        <form-bean name="NouvelArretForm" type="com.myapp.struts.ActionForm.NouvelArretForm"/>
        <form-bean name="ListeArretsAgentForm" type="com.myapp.struts.ActionForm.ListeArretsAgentForm"/>
        <form-bean name="ChoixAgentForm" type="com.myapp.struts.ActionForm.ChoixAgentForm"/>
         <form-bean name="LoginActionForm" type="com.myapp.struts.ActionForm.LoginActionForm"/>
    </form-beans>
 
    <action input="/Vues/listeArretsAgent.jsp" name="NouvelArretForm" path="/nouvelArret" scope="session" type="com.myapp.struts.Action.NouvelArretAction">
            <forward name="afficheFormulaire" path="site.nouvelArret.page"/>
            <forward name="ajoutSuccess" path="site.ajoutArretOk.page"/>
        </action>
 
 
    <!-- ========================= Validator plugin ================================= -->
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property
        property="pathnames"
        value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
    </plug-in>
Le 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
22
23
 
 <formset>
 
        <!-- FORMULAIRE D'AJOUT D'ARRET -->
        <form name="NouvelArretForm">
            <field
                property="dateDebut"
                depends="required">
                <arg key="NouvelArretForm.dateDebut"/>                
            </field>
            <field
                property="dateFin"
                depends="required, date">
                <arg key="NouvelArretForm.dateFin"/>
                <var>
                    <var-name>datePatern</var-name>
                    <var-value>dd/MM/YYYY</var-value>
                </var>
            </field>
 
        </form>
 
    </formset>
La jsp
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
 
<html:form action="nouvelArret">
    <html:errors/>
    <table border="0">
        <tr><td>Motif de l'arrêt :</td><td>
            <html:select property="motif"> 
                <html:optionsCollection property="listeMotifs" value="value" label="label"/> 
            </html:select> 
        </td></tr>
        <tr><td>Date de début :</td><td><input type="text" name="dateDebut" value="jjmmaaaa" /></td></tr>
        <tr><td>Date de fin :</td><td><input type="text" name="dateFin" value="jjmmaaaa" /></td></tr>
        <tr><td>Commentaires :</td><td> <textarea name="memo" rows="4" cols="20"></textarea></td></tr>   
    </table>
    <br>
    <html:submit>Ajouter cet arrêt</html:submit>
</html:form>
Et l'ActionForm
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
public class NouvelArretForm extends org.apache.struts.validator.ValidatorForm {
 
    private ArrayList listeMotifs=new ArrayList();
    private String motif;
    private String dateDebut;
    private String dateFin;
    private String memo;
 
.....getters/setters et constructeur....
Voilà, je ne comprend pas le formulaire est validé à chaque fois !

merci d'avance

Seb.