IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

[Validator] utilisation du "validwhen" ? [FAQ]


Sujet :

Struts 1 Java

  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut [Validator] utilisation du "validwhen" ?
    Bonjour à tous,

    grâce à cette doc, j'ai réalisé ce bout de code :
    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    [...]
    		<form name="formChoixX">
    			<field property="XFab1" depends="integer,validwhen,mask,minlength">
    				<arg position="0" key="error.XFab1" />
    				<var>
    					<var-name>test</var-name>
    					<var-value>((XFab2 != null) or (*this* != null))</var-value>
    				</var>
    				<var>
    					<var-name>mask</var-name>
    					<var-value>^[1-9][0-9]{5}$</var-value>
    				</var>
    				<var>
    					<var-name>minlength</var-name>
    					<var-value>6</var-value>
    				</var>
    			</field>
    			<field property="XFab2" depends="integer,validwhen,mask,minlength">
    				<arg position="0" key="error.XFab2" />
    				<var>
    					<var-name>test</var-name>
    					<var-value>((XFab1 != null) or (*this* != null))</var-value>
    				</var>
    				<var>
    					<var-name>mask</var-name>
    					<var-value>^[1-9][0-9]{5}$</var-value>
    				</var>
    				<var>
    					<var-name>minlength</var-name>
    					<var-value>6</var-value>
    				</var>
    			</field>
    			<field property="XSav1" depends="integer,validwhen,mask,minlength">
    				<arg position="0" key="error.XSav1" />
    				<var>
    					<var-name>test</var-name>
    					<var-value>((XSav2 != null) or (*this* != null))</var-value>
    				</var>
    				<var>
    					<var-name>mask</var-name>
    					<var-value>^[1-9][0-9]{5}$</var-value>
    				</var>
    				<var>
    					<var-name>minlength</var-name>
    					<var-value>6</var-value>
    				</var>
    			</field>
    			<field property="XSav2" depends="integer,validwhen,mask,minlength">
    				<arg position="0" key="error.XSav2" />
    				<var>
    					<var-name>test</var-name>
    					<var-value>((XSav1 != null) or (*this* != null))</var-value>
    				</var>
    				<var>
    					<var-name>mask</var-name>
    					<var-value>^[1-9][0-9]{5}$</var-value>
    				</var>
    				<var>
    					<var-name>minlength</var-name>
    					<var-value>6</var-value>
    				</var>
    			</field>
    		</form>
    [...]
    Seulement, lorsque je laisse les champs à vide ... je n'ai aucune popup JS d'avertissement, tel que ça devrait être le cas !

    En fait, aucun contrôle n'est réalisé et je me retrouve dans mon Action avec des données à vide ... donc ça plante !

    Une idée ?

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut
    Citation Envoyé par ghohm
    Seulement, lorsque je laisse les champs à vide ... je n'ai aucune popup JS d'avertissement, tel que ça devrait être le cas !

    En fait, aucun contrôle n'est réalisé et je me retrouve dans mon Action avec des données à vide ... donc ça plante !
    Désormais, tous les contrôles fonctionnent sauf le "validwhen", sauriez-vous pourquoi ?


    Gôm

  3. #3
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Il me semble que la validation avec le validwhen fonctionne seulement côté serveur.
    Donc, si tu mets validate="true" dans le mapping de l'Action et le tag <html:errors/> dans la jsp, les messages d'erreur de validation liés au validwhen devraient s'afficher dans la jsp.

  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut
    Merci beaucoup pour cette réponse !

    Je teste dès demain matin.


    Gôm

  5. #5
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut
    Citation Envoyé par c_nvy
    Il me semble que la validation avec le validwhen fonctionne seulement côté serveur.
    Donc, si tu mets validate="true" dans le mapping de l'Action et le tag <html:errors/> dans la jsp, les messages d'erreur de validation liés au validwhen devraient s'afficher dans la jsp.
    C'est déjà le cas !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <action
    	name="formChoixX"
    	path="/FormCompareX"
    	scope="session"
    	validate="true"
    	input="/compareX.do"
    	type="com.mycompany.myproject.CompareXAction"
    >
    	<forward name="succes" path="/vues/compareX.jsp"/>
    	<forward name="echec" path="/vues/compareX.jsp"/>
    </action>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <html:errors property="XFab1" />
    <html:errors property="XFab2" />

  6. #6
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Je ne vois pas de propriétés X1 et X2 dans ton fichier validation.xml mais plutôt XFab1 et XFab2.

  7. #7
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut
    Citation Envoyé par c_nvy
    Je ne vois pas de propriétés X1 et X2 dans ton fichier validation.xml mais plutôt XFab1 et XFab2.
    Simple erreur de recopie ... ça ne fonctionne toujours pas !

    J'ai "Clean" mon projet, puis j'ai "Build All" ... aucun changement ! Enfin en même temps, je pense vraiment pas que ça aurait pu venir de là !

  8. #8
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Ben désolée mais là, je ne vois pas ce qui cloche.

  9. #9
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut
    Ah !



  10. #10
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut
    J'ai essayé de modifier ce paramètre (en rouge) dans Struts-config.xml, ce qui m'affiche bien toutes mes erreurs et non uniquement la 1ère ... mais toujours rien en rapport avec validwhen !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    		<set-property property="pathnames"
    					  value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"
    		/>
    		<set-property property="stopOnFirstError" value="false"/>
    	</plug-in>

  11. #11
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Dis-moi, le test du validwhen ne serait-il pas plutôt ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((XFab1 != null) and (*this* != null))

  12. #12
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut
    Voici mon nouveau code, tout fonctionne ... sauf validwhen !?

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    [...]
    <form name="formChoixX">
    			<field property="XFab1" depends="integer,validwhen,mask,minlength">
    				<arg position="0" key="error.XFab1" />
    				<arg position="1" key="error.XFab1.mini" />
    				<var>
    					<var-name>test</var-name>
    					<var-value>((XFab2 != null) and (*this* != null))</var-value>
    				</var>
    				<var>
    					<var-name>mask</var-name>
    					<var-value>^[1-9][0-9]{5}$</var-value>
    				</var>
    				<var>
    					<var-name>minlength</var-name>
    					<var-value>6</var-value>
    				</var>
    			</field>
    			<field property="XFab2" depends="integer,validwhen,mask,minlength">
    				<arg position="0" key="error.XFab2" />
    				<arg position="1" key="error.XFab2.mini" />
    				<var>
    					<var-name>test</var-name>
    					<var-value>((XFab1 != null) and (*this* != null))</var-value>
    				</var>
    				<var>
    					<var-name>mask</var-name>
    					<var-value>^[1-9][0-9]{5}$</var-value>
    				</var>
    				<var>
    					<var-name>minlength</var-name>
    					<var-value>6</var-value>
    				</var>
    			</field>
    			<field property="XSav1" depends="integer,validwhen,mask,minlength">
    				<arg position="0" key="error.XSav1" />
    				<arg position="1" key="error.XSav1.mini" />
    				<var>
    					<var-name>test</var-name>
    					<var-value>((XSav2 != null) and (*this* != null))</var-value>
    				</var>
    				<var>
    					<var-name>mask</var-name>
    					<var-value>^[1-9][0-9]{5}$</var-value>
    				</var>
    				<var>
    					<var-name>minlength</var-name>
    					<var-value>6</var-value>
    				</var>
    			</field>
    			<field property="XSav2" depends="integer,validwhen,mask,minlength">
    				<arg position="0" key="error.XSav2" />
    				<arg position="1" key="error.XSav2.mini" />
    				<var>
    					<var-name>test</var-name>
    					<var-value>((XSav1 != null) and (*this* != null))</var-value>
    				</var>
    				<var>
    					<var-name>mask</var-name>
    					<var-value>^[1-9][0-9]{5}$</var-value>
    				</var>
    				<var>
    					<var-name>minlength</var-name>
    					<var-value>6</var-value>
    				</var>
    			</field>
    		</form>
    [...]

    Attention hein ... je vais finir par faire un bon gros if { ... } else { ... } dans mon Action et ça va être régler !

  13. #13
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Au fait, ton ActionForm hérite bien de ValidatorForm ?

  14. #14
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut
    Citation Envoyé par c_nvy
    Au fait, ton ActionForm hérite bien de ValidatorForm ?
    Je n'héritais effectivement pas de ValidatorForm, mais de Action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class ChoixXAction extends Action {
     
    	public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response)
    			throws IOException, ServletException, SQLException {
    Maintenant j'hérite de ValidatorForm :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    import org.apache.struts.validator.ValidatorForm;
     
    public class ChoixXAction extends ValidatorForm {
     
    	public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response)
    			throws IOException, ServletException, SQLException {
    Mais çe ne fonctionne toujours pas ?


    J'ai oublié quelque chose ?

  15. #15
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut
    Je pensais que l'on avait besoin d'hériter de ValidatorForm uniquement si l'on voulait redéfinir la méthode Validate, sinon il suffisait d'hériter de Action, non ?

  16. #16
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Attention, je ne te parle pas de l'Action mais de l'ActionForm.

    ChoixXAction doit bien hériter de Action.
    C'est l'ActionForm correspondant au form-bean formChoixX qui doit hériter de ValidatorForm, ou de DynaValidatorForm si c'est un formulaire dynamique.

    EDIT : à partir du moment où tu as besoin d'une validation côté serveur avec le Validator, il faut que ton ActionForm hérite de ValidatorForm et il ne faut pas définir de méthode validate, sauf dans le cas où tu veux combiner une validation via le Validator et la méthode validate(), comme indiqué dans la FAQ.

  17. #17
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut
    Au temps pour moi !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class ChoixFdmForm extends ActionForm {
    Re
    Je suis trop un boulet ...

  18. #18
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2003
    Messages : 921
    Par défaut
    Citation Envoyé par c_nvy
    EDIT : à partir du moment où tu as besoin d'une validation côté serveur avec le Validator, il faut que ton ActionForm hérite de ValidatorForm et il ne faut pas définir de méthode validate, sauf dans le cas où tu veux combiner une validation via le Validator et la méthode validate(), comme indiqué dans la FAQ.
    Oui, c'est bien ce que j'avais lu.

    J'ai modifié mon ActionForm pour qu'il hérite de la bonne classe = "ValidatorForm", mais ça ne fonctionne toujours pas !

    ActionForm :
    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
    51
    52
    53
    54
    55
    56
    57
    package com.mycompany.myproject;
     
    import java.util.ArrayList;
    import org.apache.struts.validator.ValidatorForm;
     
    public class ChoixXForm extends ValidatorForm {
     
    	private String XFab1 = "";
     
    	private String XFab2 = "";
     
    	private String XSav1 = "";
     
    	private String XSav2 = "";
     
    	private ArrayList list = null;
     
    	public String getXFab1() {
    		return XFab1;
    	}
     
    	public void setXFab1(String XFab1) {
    		this.XFab1 = XFab1;
    	}
     
    	public String getXFab2() {
    		return XFab2;
    	}
     
    	public void setXFab2(String XFab2) {
    		this.XFab2 = XFab2;
    	}
     
    	public String getXSav1() {
    		return XSav1;
    	}
     
    	public void setXSav1(String XSav1) {
    		this.XSav1 = XSav1;
    	}
     
    	public String getXSav2() {
    		return XSav2;
    	}
     
    	public void setXSav2(String XSav2) {
    		this.XSav2 = XSav2;
    	}
     
    	public ArrayList getList() {
    		return list;
    	}
     
    	public void setList(ArrayList list) {
    		this.list = list;
    	}
    }
    validation.xml :
    Code xml : 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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    [...]
    <form name="formChoixX">
    			<field property="XFab1" depends="integer,validwhen,mask,minlength">
    				<arg position="0" key="error.XFab1" />
    				<arg position="1" key="error.XFab1.mini" />
    				<var>
    					<var-name>test</var-name>
    					<var-value>((XFab2 != null) and (*this* != null))</var-value>
    				</var>
    				<var>
    					<var-name>mask</var-name>
    					<var-value>^[1-9][0-9]{5}$</var-value>
    				</var>
    				<var>
    					<var-name>minlength</var-name>
    					<var-value>6</var-value>
    				</var>
    			</field>
    			<field property="XFab2" depends="integer,validwhen,mask,minlength">
    				<arg position="0" key="error.XFab2" />
    				<arg position="1" key="error.XFab2.mini" />
    				<var>
    					<var-name>test</var-name>
    					<var-value>((XFab1 != null) and (*this* != null))</var-value>
    				</var>
    				<var>
    					<var-name>mask</var-name>
    					<var-value>^[1-9][0-9]{5}$</var-value>
    				</var>
    				<var>
    					<var-name>minlength</var-name>
    					<var-value>6</var-value>
    				</var>
    			</field>
    			<field property="XSav1" depends="integer,validwhen,mask,minlength">
    				<arg position="0" key="error.XSav1" />
    				<arg position="1" key="error.XSav1.mini" />
    				<var>
    					<var-name>test</var-name>
    					<var-value>((XSav2 != null) and (*this* != null))</var-value>
    				</var>
    				<var>
    					<var-name>mask</var-name>
    					<var-value>^[1-9][0-9]{5}$</var-value>
    				</var>
    				<var>
    					<var-name>minlength</var-name>
    					<var-value>6</var-value>
    				</var>
    			</field>
    			<field property="XSav2" depends="integer,validwhen,mask,minlength">
    				<arg position="0" key="error.XSav2" />
    				<arg position="1" key="error.XSav2.mini" />
    				<var>
    					<var-name>test</var-name>
    					<var-value>((XSav1 != null) and (*this* != null))</var-value>
    				</var>
    				<var>
    					<var-name>mask</var-name>
    					<var-value>^[1-9][0-9]{5}$</var-value>
    				</var>
    				<var>
    					<var-name>minlength</var-name>
    					<var-value>6</var-value>
    				</var>
    			</field>
    		</form>
    [...]
    struts-config.xml :
    Code xml : 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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
              "http://struts.apache.org/dtds/struts-config_1_3.dtd">
    <struts-config>
    	<form-beans>
    		<form-bean
    			name="formChoixX"
    			type="com.mycompany.myproject.ChoixXForm"
    		/>
    	</form-beans>
    	<action-mappings>
    		<action
    			path="/choixX"
    			forward="/vues/choixX.jsp"
    		/>
    		<action
    			name="formChoixX"
    			path="/FormChoixX"
    			scope="session"
    			validate="true"
    			input="/choixX.do"
    			type="com.mycompany.myproject.ChoixXAction"
    		>
    			<forward name="succes" path="/vues/choixX.jsp"/>
    			<forward name="echec" path="/vues/choixX.jsp"/>
    		</action>
    	</action-mappings>
    	<message-resources parameter="com.mycompany.myproject.blablaRessources"/>
    	<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    		<set-property property="pathnames"
    					  value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"
    		/>
    		<set-property property="stopOnFirstError" value="false"/>
    	</plug-in>
    </struts-config>
    Là vraiment je vois pas !

  19. #19
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Peux-tu faire un test en modifiant l'attribut input dans le mapping de ton Action comme ceci :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	<action
    			name="formChoixX"
    			path="/FormChoixX"
    			scope="session"
    			validate="true"
    			input="/vues/choixX.jsp"
    			type="com.mycompany.myproject.ChoixXAction"
    		>
    		<forward name="succes" path="/vues/choixX.jsp"/>
    		<forward name="echec" path="/vues/choixX.jsp"/>
    	</action>

  20. #20
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Je viens de voir ton erreur.
    Les propriétés de l'ActionForm doivent commencer par une minuscule.

    Remplace ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	private String XFab1 = ""; 
    	private String XFab2 = ""; 
    	private String XSav1 = ""; 
    	private String XSav2 = "";
    par ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	private String xFab1 = ""; 
    	private String xFab2 = ""; 
    	private String xSav1 = ""; 
    	private String xSav2 = "";
    dire que je n'ai même pas réagi en voyant les noms des propriétés dans le fichier validation.xml.
    Je crois que j'ai besoin de vacances.

    Si ça ne fonctionne toujours pas, essaie de renommer tes propriétés en xfab1, xfab2, xsav1, xsav2 et getter et setter getXfab1, getXfab2,...
    parce qu'il me semble qu'il n'aime pas trop les propriétés dont la deuxième lettre est une majuscule.

    Et pense à les renommer partout, dans l'ActionForm, dans le fichier validation.xml et dans la jsp.

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/11/2006, 18h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo