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-validator] la validation de ne se fait pas


Sujet :

Struts 1 Java

  1. #1
    Membre régulier Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Points : 76
    Points
    76
    Par défaut [struts-validator] la validation de ne se fait pas
    Salut,

    j'essaie de mettre en oeuvre la validation pour un formulaire en utilisant le plugin de validation.

    dans mon struts-config.xml, j'ai mis :
    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"/>
      </plug-in>
    J'ai bien posé dans ma WEB-INF les validator-rules.xml (avec les rules par défault) ainsi que le validation.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <form name="StartSubscriptionForm">
    	<field property="name" depends="required">
    		<arg0 key="inscription.nom"/>
    	</field>
    </form>
    Dans mon struts config, voila le form associé :
    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-beans>
            <form-bean name="StartSubscriptionForm" type="sapinscription.form.StartSubscriptionForm"/>
     
        </form-beans>
     
      <action-mappings>
     
        <action    path      = "/StartSubscription"
                   type      = "sapinscription.action.StartSubscriptionAction"
                   name      = "StartSubscriptionForm"
                   scope     = "session"
                   validate  = "true"
                   input     = "/jsp/inscriptionForm.jsp"
          >
            <forward name="subscribingPage" path="/jsp/inscriptionForm.jsp"  />
         </action>

    Alors mon test est le suivant, c'est de poster mon formulaire sans saisir le nom (qui est required)

    Mais ma servlet action est executée quand meme.. alors qu'elle ne devrait pas si le validator etait passé ?


    help !

  2. #2
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 120
    Points : 106
    Points
    106
    Par défaut Ta page JSP
    Effectivement, tu as raison, si le validateur fonctionnait tu ne devrais pas passer dans ton erreur.

    As-tu mis la balise <html:javascript formName="tartSubscriptionForm"> dans ta JSP contenant ton formulaire ?
    As-tu mis un onsubmit="return validateTartSubscriptionForm(this);" dans ta balise <html:form> ?
    Si oui, peux-tu nous montrer ta page JSP ?

  3. #3
    Membre régulier Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Points : 76
    Points
    76
    Par défaut
    Yes, g bien mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <html:javascript formName="StartSubscriptionForm">
    dans ma jsp..

    mais non, j'ai pas mis
    "return validateTartSubscriptionForm(this)"

    On est obligé de faire un appel JS ?


  4. #4
    Membre régulier Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Points : 76
    Points
    76
    Par défaut
    Erreur : validateStartSubscriptionForm is not defined
    Fichier source : http://localhost:8080/idtrosite/StartSubscription.do


  5. #5
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 120
    Points : 106
    Points
    106
    Par défaut Pas d'accès
    Je n'ai pas accès à ton fichier en local sur ta machine !!!

    La validation JS n'est pas obligatoire mais personnellement, j'ai jamais réussi à faire fonctionner la validation dans JS !

  6. #6
    Membre régulier Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Points : 76
    Points
    76
    Par défaut
    oui oui je me doute bien que tu n'as pas accés à ma machine.. et puis avec localhost... de toute facon.. j'ai juste copié collé mon err js.

    Alors si je comprends bien le principe, je devrai avoir en affichant la source dans mon navigateur, voir apparaitre plein de methodes js ??
    Et ce, a l'endroit ou j'ai posé mon "html:javascript" ?

    mais ne me faut-il pas un struts-validator.tld ??
    (j'en entends parler sur des forums.. mais je ne le trouve pas )


    heellp je commence à etre àla bourre sur mon projet

  7. #7
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 120
    Points : 106
    Points
    106
    Par défaut Peut être une idée
    Essai en enlevant la majuscule à ton nom de bean dans strus-config.xml, validation.xml et ta jsp mais ne change pas le nom de la fonction javascript !!

    Est-ce que tu pourrais me donner le code source de ta JSP une fois exécutée (si ca ne marche toujours pas bien sur !!)

  8. #8
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 291
    Points : 1 059
    Points
    1 059
    Par défaut
    Tu as bien définit les MessageRessources au niveau de Struts ?

  9. #9
    Membre régulier Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Points : 76
    Points
    76
    Par défaut
    <message-resources null="false" parameter="conf.WebMessages"/>

    oui j'ai ca au dessus de la déclaration du plugin validator dans mon struts-config.xml..


  10. #10
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut voilà une bonne idée
    Citation Envoyé par mymyma
    Essai en enlevant la majuscule à ton nom de bean dans strus-config.xml, validation.xml et ta jsp mais ne change pas le nom de la fonction javascript !!
    As-tu essayé ce que t'as conseillé mymyma, c'est à dire renommer ton form-bean en startSubscriptionForm avec une minuscule en première lettre ?

  11. #11
    Membre régulier Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Points : 76
    Points
    76
    Par défaut
    euh... j'ai pas ce message moi !

    j'essai

  12. #12
    Membre régulier Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Points : 76
    Points
    76
    Par défaut
    Pas mieux

  13. #13
    Membre régulier Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Points : 76
    Points
    76
    Par défaut
    mymyma... le code source

    2500 ligne.. c trop grs.. tu veux voir quoi en particulier ?

  14. #14
    Membre régulier Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Points : 76
    Points
    76
    Par défaut
    j'ai trouvé ca.. a l'endroit ou j'ai ma balise <htlm:javascript>


    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
     
     
      private boolean _jspx_meth_html_javascript_0(javax.servlet.jsp.PageContext pageContext)
              throws Throwable {
        JspWriter out = pageContext.getOut();
        /* ----  html:javascript ---- */
        org.apache.struts.taglib.html.JavascriptValidatorTag _jspx_th_html_javascript_0 = (org.apache.struts.taglib.html.JavascriptValidatorTag) _jspx_tagPool_html_javascript_formName_nobody.get(org.apache.struts.taglib.html.JavascriptValidatorTag.class);
        _jspx_th_html_javascript_0.setPageContext(pageContext);
        _jspx_th_html_javascript_0.setParent(null);
        _jspx_th_html_javascript_0.setFormName("StartSubscriptionForm");
        int _jspx_eval_html_javascript_0 = _jspx_th_html_javascript_0.doStartTag();
        if (_jspx_th_html_javascript_0.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
          return true;
        _jspx_tagPool_html_javascript_formName_nobody.reuse(_jspx_th_html_javascript_0);
        return false;
      }

  15. #15
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    _jspx_th_html_javascript_0.setFormName("StartSubscriptionForm");
    Tu n'as donc pas modifié le nom du form-bean avec une minuscule en première lettre partout, soit dans validation.xml, dans struts-config.xml et dans le tag html:javascript.

  16. #16
    Membre régulier Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Points : 76
    Points
    76
    Par défaut
    euh... tu m'avais dit "change dans les .xml et pas dans le html:javascript"

    j'avais mal compris

    je recommence

  17. #17
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Est-ce que ça fonctionne mieux avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    <html:javascript formName="startSubscriptionForm" dynamicJavascript="false" staticJavascript="true"/>

  18. #18
    Membre régulier Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Points : 76
    Points
    76
    Par défaut
    Toujours le meme probleme..
    j'ai ajouté :

    <html:javascript formName="startSubscriptionForm" dynamicJavascript="false" staticJavascript="true"/>


    et mon code généré 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
      private boolean _jspx_meth_html_javascript_0(javax.servlet.jsp.PageContext pageContext)
              throws Throwable {
        JspWriter out = pageContext.getOut();
        /* ----  html:javascript ---- */
        org.apache.struts.taglib.html.JavascriptValidatorTag _jspx_th_html_javascript_0 = (org.apache.struts.taglib.html.JavascriptValidatorTag) _jspx_tagPool_html_javascript_staticJavascript_formName_dynamicJavascript_nobody.get(org.apache.struts.taglib.html.JavascriptValidatorTag.class);
        _jspx_th_html_javascript_0.setPageContext(pageContext);
        _jspx_th_html_javascript_0.setParent(null);
        _jspx_th_html_javascript_0.setFormName("startSubscriptionForm");
        _jspx_th_html_javascript_0.setDynamicJavascript("false");
        _jspx_th_html_javascript_0.setStaticJavascript("true");
        int _jspx_eval_html_javascript_0 = _jspx_th_html_javascript_0.doStartTag();
        if (_jspx_th_html_javascript_0.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)
          return true;
        _jspx_tagPool_html_javascript_staticJavascript_formName_dynamicJavascript_nobody.reuse(_jspx_th_html_javascript_0);
        return false;
      }
    }
    j'ai bien mes librairies dans common/lib.. tout a l'air cohérent;. et les logs ne disent rien..

    mais faut que ca marche !!!
    chui a la bouuuuurre

  19. #19
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Tu n'aurais pas codé une méthode validate dans ton ActionForm par hasard ?
    Si c'est le cas, il faut la supprimer.

  20. #20
    Membre régulier Avatar de jeb001
    Profil pro
    Inscrit en
    Août 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2005
    Messages : 212
    Points : 76
    Points
    76
    Par défaut
    non pas de methode validate..
    par contre g un vaildate="true" dans le struts-config.xml.. c bon ca ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 5 12345 DernièreDernière

Discussions similaires

  1. [2.x] La validation de mon formulaire ne se fait pas
    Par gilloubillou dans le forum Symfony
    Réponses: 7
    Dernier message: 03/08/2012, 09h24
  2. [Validator] Le contrôle JS ne se fait pas
    Par ghenry dans le forum Struts 1
    Réponses: 3
    Dernier message: 19/07/2006, 15h26
  3. [Struts] DynaValidatorForm et Validation.xml.
    Par Varroux dans le forum Struts 1
    Réponses: 6
    Dernier message: 24/02/2006, 10h29
  4. [STRUTS] Nested tags validation - Client side
    Par SEMPERE Benjamin dans le forum Struts 1
    Réponses: 3
    Dernier message: 18/07/2005, 13h21
  5. [Struts 1.2] : validation coté serveur
    Par richard_34b dans le forum Struts 1
    Réponses: 3
    Dernier message: 15/09/2004, 15h42

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