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 et input


Sujet :

Struts 1 Java

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 116
    Par défaut Validator et input
    Salut,

    J'ai un tit souchi: J'aimerais utiliser le plugin validator pour verifier certain champs. Le probleme est qu'il a besoin du champ input, dans le cas ou les données seraient incorrectes. Si je lui donne la meme action, je part en bouckle infinie. Et si je met mon tile alors il me manque tous les données présent dans la requete pour pouvoir pre-remplir ma page.
    N'y a t-il pas un param utiliser la meme action (sinon je dois decouper mon action en 2 : prepare et execute... mais j'aimerais eviter).

    Autre chose J'ai essayer d'activer la validation javascript. Mais il continue a appeler la methode validate de mon form. Est-ce normale ?
    Pourtant j'ai bien suivi la FAQ. En cas d'erreur cela doit s'afficher dans une pop-up ou bien dans les champs html:errors correspondant ?

    Merci

  2. #2
    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
    En fait, tu as trois possibilités :

    - soit tu veux seulement une validation côté client. Dans ce cas, il faut coder dans la jsp le tag html:javascript et l'attribut onsubmit comme spécifié dans la FAQ et mettre validate="false" dans le mapping de l'Action.
    Ceci peut être dangereux dans le cas où le javascript est désactivé dans le browser car il n'y aura pas de validation.

    - soit tu veux seulement une validation côté serveur. Dans ce cas, il faut seulement coder le tag html:errors dans la jsp et mettre validate="true" dans le mapping de l'Action.

    - soit tu veux valider à la fois côté client et côté serveur. Dans ce cas, il faut mettre le tag html:javascript, l'attribut onsubmit et le validate="true".
    Il n'est pas utile de mettre le html:errors étant donné que les erreurs de validation apparaîtront dans la popup.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 116
    Par défaut
    Merci pour la reponse a ma deuxieme question. En fait j'ai choisi la 3°. Mais je n'ai pas l'impression que le code soit valider en javascript, etant donné qu'il recharge la page et qu'il me mets les valeurs dans me tags html:errors.
    Poutant mon code jsp est:
    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
     
    <script type="text/javascript">
    	function maValid(form){
     	        dojo.debug("Validation en cours");
    		ok = validateStrutsForm(form);
    		dojo.debug("Validation: "+ok);
    		return ok;
    	}
        function submitForm(idForm){
             form = document.getElementById(idForm);
             if(form.onsubmit != undefined){
                 form.onsubmit();
             }
             form.submit();
         }
    </script>
    ...
    <html:form action="${action}" styleId="modifyAllForm" onsubmit="return maValid(this)">
    	<html:javascript formName="${action}" method="validateStrutsForm"/>
    ....
    <html:submit onclick="javascript:submitForm('modifyAllForm')" styleClass="bouton" >
    			<bean:message key="link.validate" />
    		</html:submit>

  4. #4
    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 n'ai jamais testé le cas où on définit le nom de la fonction générée comme indiqué dans la FAQ ici.

    Peux-tu tester le cas standard soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <html:javascript formName="tonForm"/>
    <html:form action="pathDeTonAction" onsubmit="return validateTonForm(this);">
    et voir si tu as le même problème.

    Dans le cas d'une validation côté client, tu dois avoir les messages d'erreur dans une popup.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 116
    Par défaut
    Bizarre ca marche... mon code aussi... Il a du s'emeler les pincaux avec les jsp compilées...
    Par contre pour ma premiere question que me conseiller vous ?
    Peux ton specifier un input identique a l'action courante sans qu'il parte en boucle infinie ?

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 116
    Par défaut
    Si je met validate a false cela doit passer. Mais dans ce cas j'aimerais quand meme valider le code coté serveur. Je fais comment ?
    Comme cela ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    mappingTmp.setPath("/monAction");
    errors = form.validate(mappingTmp, request);

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 116
    Par défaut
    En faisant la validation sur un mapping predfeini j'obtient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    java.lang.IllegalStateException: Configuration is frozen
    	org.apache.struts.config.ActionConfig.setForward(ActionConfig.java:389)
    Cela est du a quoi ?

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 116
    Par défaut
    LOL,
    J'utilsais le mapping donné par la methode execute. Ce qu'il e faut pas faire dans ce cas...
    Il suffisait de recréer un mapping et C ok...

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/12/2013, 15h32
  2. problème entre jquery validation et input type file
    Par thor76160 dans le forum ASP.NET MVC
    Réponses: 2
    Dernier message: 26/09/2012, 16h22
  3. Ne valider que les champs <INPUT TEXT apparent
    Par bilou95 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 25/05/2007, 16h14
  4. Réponses: 3
    Dernier message: 12/05/2007, 15h45
  5. valider un input protégé
    Par scoder dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 16/12/2004, 16h26

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