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 :

[Struts]Struts-validator syntaxe


Sujet :

Struts 1 Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 12
    Points : 6
    Points
    6
    Par défaut [Struts]Struts-validator syntaxe
    Salut,

    J'ai un formulaire qui contient plusieurs champ qui sont validés en utilisant Validator.xml et Validator-Rules.xml (struts). Toutefois j'ai un champ file (formFile) qui contient le path ainsi que le nom du fichier. Je veux m'assurer que l'extension du fichier est .pdf. Si le fichier ne possède pas une extension pdf alors un message d'erreur est affiché sur la page jsp.

    Voici le champ que j'essaie de valider. Ce code est dans ma page jsp.

    Merci pour l'aide à l'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><html:file property="digitalFax" styleId="a1"  onchange='return digitalFaxPathValue(this)' />

    Voici le 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
    <form-validation>
     
    	<global>
    		<constant><<constant>
    			<constant-name>digitalFax</constant-name>
    			<constant-value>^.\.[pdf]$</constant-value>
    		</constant>
    	</global>
    <form name="formName">
    <field property="digitalFax"
           			page="1"
    				depends="mask">
    				<arg0 key="sap.digitalFax" />
    				<msg name="mask"
    					 key="errors.digitalFaxMask"/>
    			</field>
    </formName>
    Balises [Code] rajoutées par Ricky81
    Merci d'y penser à l'avenir

  2. #2
    Membre régulier
    Avatar de Jaxofun
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 108
    Points : 84
    Points
    84
    Par défaut
    Salut !

    Je doit t'avouer que j'ai parfaitement compris ce que tu veut faire, mais ce qui serait bien, ce serait de dire aussi où y a un problème. Enfin moi j'dis ça..., j'dis rien !

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Désolé, j'ai oublié d'inclure la question. Je voudrais savoir si quelqu'un connait la bonne syntaxe qui me permettrait de valider l'extension????

    [<constant-value>^.\.[pdf]$</constant-value>
    ]

    J'ai utilisé ceci: ^.<.[pdf]$ mais ça ne fonctionne pas donc ma syntaxe n'est pas bonne. Quel est la bonne syntaxe??

    Merci beaucoup[/code]

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    Citation Envoyé par MikoShiva
    Désolé, j'ai oublié d'inclure la question. Je voudrais savoir si quelqu'un connait la bonne syntaxe qui me permettrait de valider l'extension????

    [<constant-value>^.\.[pdf]$</constant-value>
    ]

    J'ai utilisé ceci: ^.<.[pdf]$ mais ça ne fonctionne pas donc ma syntaxe n'est pas bonne. Quel est la bonne syntaxe??

    Merci beaucoup[/code]
    [pdf]$ signifie que le path se termine par p, d ou f,
    => par exemple (pdf, ppf, f, p...)
    c est la ton erreur

    Sun Certified Business Component Developer
    Sun Certified Java Programmer
    --
    The definitive toolbox for GWT applications: gwt-toolbox
    My blog about Java and JEE: Benjamin's Blog

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Donc si j'écris ceci : ^.<.[p]+[d]+[f] devrait fonctionner?? Comme tu vois le web n'est pas ma spécialité.

    Merci

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    Citation Envoyé par MikoShiva
    Donc si j'écris ceci : ^.<.[p]+[d]+[f] devrait fonctionner?? Comme tu vois le web n'est pas ma spécialité.

    Merci
    moi j aurais fais ca

    Sun Certified Business Component Developer
    Sun Certified Java Programmer
    --
    The definitive toolbox for GWT applications: gwt-toolbox
    My blog about Java and JEE: Benjamin's Blog

  7. #7
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Suite à ta réponse j'en avais conclu ce qui suit:

    syntaxe ^.\.[pP][dD][fF]$

    J'ai également essayé ce qui suit : ^.\.[p][d][f]$ mais aucun des 2 n'a fonctionné. J'en conclu donc que j'ai une autre erreur mais cette fois-ci dans ma validation.

    L'erreur doit être tellement évidente que je n'arrive pas à la trouver. Est-ce que quelqu'un peut voir ce que je fais de mal.

    Merci

    Voici le code

    Validation.xml (Struts)

    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
    <form-validation>
     
    	<global>
    		<constant>
    			<constant-name>digitalFile</constant-name>
    			<constant-value>^.\.[pP][dD][fF]$</constant-value> 
    		</constant>
    	</global>
     
           <formset>
    	<form name="sarForm">
    		<field property="digitalFax"
           			page="1"
    				depends="mask">
    				<arg0 key="sap.digitalFax" />
    				<msg name="mask"
    					 key="errors.digitalFaxMask"/>
    				   <var>
    					<var-name>mask</var-name>
    					<var-value>${digitalFile}</var-value>
    				   </var>
    			</field>  
    	</form>
      </formset>
    </form-validation>
    Page jsp

    code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <td><label for="a1"><strong><bean:message key="sap.digitalFax" /></strong></label></td>
    			<td></td>
    			<td><html:file property="digitalFax" styleId="a1"  onchange='return digitalValue(this)' /> 
    			<td></td>
    			</tr>	
    			<tr>
    			<td><label for="a2"><strong><bean:message key="sap.attachedFile" /></strong></label></td>
    			<td></td>			
    			<td>
    			<logic:present name="sarForm" property="digitalFax">
    			<bean:write name="sarForm" property="digitalFax" />  <html:button property="submit" onclick="window.location='LoadAction.do?action=remove'" ><bean:message key="button.remove" /></html:button> 
    			</logic:present>
    			</td>

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    oui c'est bien mais tu devrais utiliser les balises "Code" pour que cela soit lisible, en plus je ne vois pas la déclaration

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <html:form>
     
    </html:form>
    =>Ton form n'est pas submité

    Sun Certified Business Component Developer
    Sun Certified Java Programmer
    --
    The definitive toolbox for GWT applications: gwt-toolbox
    My blog about Java and JEE: Benjamin's Blog

  9. #9
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Désolé pour les balises, j'essaie bien mais sans succès à date.

    Le code html que j'ai inscrit plus haut n'est qu'une partie de la page html. Comme la page est volumineuse, je n'ai pas tout inscrit. Toutefois cette page contient déjà des champs text qui sont validés (fonctionne très bien). Maintenant je me demande si le fait que ce champ soit un champ file peut changer quoique ce soit. Aussi il y a une interaction entre le champ file digitalFax et attacheFile. Le cham digitalFax s'obtient lorsque l'on browse à travers la boite de dialogue. Une fois choisi on click sur le bouton submit du formulaire et il transfere le ce qui se trouve dans le champ digitalFax dans le champ attacheFile.

    J'ai essayé de valider l'un après l'autre sans succès. Donc j'en suis à me demandé si je n'ai pas une erreur stupide dans mon code de validation que je ne vois pas.

    Merci encore une fois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    <html:form>
     
    </html:form>

  10. #10
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Citation Envoyé par MikoShiva
    Désolé pour les balises, j'essaie bien mais sans succès à date.
    Voila ce qui arrive quand on écrit [code] dans une phrase est qu'on essaye d'utiliser la balise par la suite pour formater du code

  11. #11
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Dans validation-rule.xml, voici le code "mask" qui valide le champ "file" :
    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
      <validator name="mask"
                classname="org.apache.struts.validator.FieldChecks"
                   method="validateMask"
             methodParams="java.lang.Object,
                           org.apache.commons.validator.ValidatorAction,
                           org.apache.commons.validator.Field,
                           org.apache.struts.action.ActionErrors,
                           javax.servlet.http.HttpServletRequest"
                  depends=""
                      msg="errors.invalid">
     
             <javascript><![CDATA[
                function validateMask(form) {
                    var isValid = true;
                    var focusField = null;
                    var i = 0;
                    var fields = new Array();
                    oMasked = new mask();
                    for (x in oMasked) {
                        var field = form[oMasked[x][0]];
     
                        if ((field.type == 'text' || 
                        	 field.type == 'file' ||
                             field.type == 'textarea') && 
                             (field.value.length > 0)) {
     
                            if (!matchPattern(field.value, oMasked[x][2]("mask"))) {
                                if (i == 0) {
                                    focusField = field;
                                }
                                fields[i++] = oMasked[x][1];
                                isValid = false;
                            }
                        }
                    }
     
                    if (fields.length > 0) {
                       focusField.focus();
                       alert(fields.join('\n'));
                    }
                    return isValid;
                }
     
                function matchPattern(value, mask) {
                   return mask.exec(value);
                }]]>
             </javascript>
     
          </validator>
    Dans la condition "if" , j'ai ajoute le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     field.type == 'file' ||
    qui me permet de valider le champ "file".

    Toutefois ça ne fonctionne pas plus. Exsite-t-il une façon quelquonque qui me permettrait d'accéder à la fonction "mask" pour enfin savoir ce qu'il essaie de valider???????

    Merci

  12. #12
    Futur Membre du Club
    Inscrit en
    Août 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    J'ai résoud mon propre problème qui était composé de 2 erreurs majeurs. Dans la fonction mask, assurez-vous que le type de champ soit ajouté à la condition "if" dans mon cas "type= file". Deuxièmement la bonne syntaxe pour capturer le nom d'un fichier possédant une extension spécifique telque pdf ou PDF est :
    Merci pour votre aide et j'espère que ce compte rendu aidera quelqu'un d'autre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. struts/javascript - validation du formulaire
    Par kkkkkk dans le forum Struts 1
    Réponses: 24
    Dernier message: 05/06/2007, 11h22
  2. Struts - plugin Validator
    Par alexandre7 dans le forum Struts 1
    Réponses: 6
    Dernier message: 19/04/2007, 16h35
  3. Réponses: 6
    Dernier message: 05/07/2005, 16h33
  4. Réponses: 7
    Dernier message: 16/03/2005, 12h35
  5. [ Struts ] pb Validator
    Par voodoo_mg dans le forum Struts 1
    Réponses: 7
    Dernier message: 01/07/2004, 08h11

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