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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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à !

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