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] Impossible de lancer le Validator


Sujet :

Struts 1 Java

  1. #21
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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
    Essaye cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="TestValidatorForm" method="post" action="/testValidator.do" onsubmit="return validateTestValidatorForm(this);">
    Gôm

  2. #22
    Membre confirmé
    Profil pro
    Developpeur
    Inscrit en
    Avril 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Avril 2004
    Messages : 160
    Par défaut
    Normalement, si tu veux faire la validation avec struts, t'ai pas obligé d'utilisé de javascript.

    il faut que ton form java herite de ValidatorForm

    et dans ta page jsp :

    <logic:messagesPresent>
    <ul>
    <html:messages id="error">
    <li class="TEXTEROUGE"><bean:write name="error" /></li>
    </html:messages>
    </ul>
    </logic:messagesPresent>

    de plus biensure de ce que tu as fait deja dans validator.xml

    Bon courage

  3. #23
    Membre confirmé Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Par défaut
    Citation Envoyé par ghohm
    Essaye cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="TestValidatorForm" method="post" action="/testValidator.do" onsubmit="return validateTestValidatorForm(this);">
    Gôm
    Quand je met ca il me demande de mettre l'attribut "type" mais je ne sais pas ce que je dois mettre dans cette attribut.

    Citation Envoyé par bonano
    <logic:messagesPresent>
    <ul>
    <html:messages id="error">
    <li class="TEXTEROUGE"><bean:write name="error" /></li>
    </html:messages>
    </ul>
    </logic:messagesPresent>
    Ca marche avec ca, il m'affiche le message d'erreur, mais il utilise la méthode "validate" de ma form. Est-ce normal? Cependant il affiche directement le message d'erreur dès que l'on ouvre la page, or je voudrais pouvoir afficher ce messaage que lorsque l'on clique sur le bouton. Est-ce possible?

  4. #24
    Membre confirmé Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Par défaut
    De plus, il ouvre la page mis en input. Pourquoi? Où est l'erreur dans l'ActionForm" ?

    struts-config.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <action path="/testValidator"
                    type="st.ccam.fmm.web.actions.testValidatorAction"
                    name="TestValidatorForm"
                    scope="request"
                    validate="true"
                    parameter="method"
                    input="/pages/testValidator.jsp">
                <forward name="success" path="/pages/testValidator.jsp" />
                <forward name="failed" path="/error.jsp" />
            </action>
    L'ActionForm : TestValidatorAction.java
    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
     
    import java.io.IOException;
     
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
     
     
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
     
    import org.apache.commons.validator.ValidatorAction;
     
    import org.apache.log4j.Logger;
     
    import st.ccam.web.forms.TestValidatorForm;
     
    public final class testValidatorAction extends Action {
     
    	final static Logger logger = Logger.getLogger(testValidatorAction.class.getName());
     
        public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        	HttpSession session = request.getSession(true);
            ActionErrors actionErrors = new ActionErrors();
     
            System.out.println("Erreurs : " + actionErrors.size());
     
            try{
            	return mapping.findForward("success"); 
            }
            catch(Exception e){
            	e.printStackTrace();
            }
            return mapping.findForward("failed"); 
        }
    }

  5. #25
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2003
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 emeraudes
    De plus, il ouvre la page mis en input. Pourquoi?
    Parce qu'il a détecté une erreur et que tu lui as dit de faire une redirection vers la valeur d'input lors d'une erreur !

  6. #26
    Membre confirmé Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Par défaut
    Je sais ca mais quelle est cette erreur et comment la corriger?

  7. #27
    Membre confirmé
    Profil pro
    Developpeur
    Inscrit en
    Avril 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Avril 2004
    Messages : 160
    Par défaut
    Citation Envoyé par emeraudes
    Ca marche avec ca, il m'affiche le message d'erreur, mais il utilise la méthode "validate" de ma form. Est-ce normal? Cependant il affiche directement le message d'erreur dès que l'on ouvre la page, or je voudrais pouvoir afficher ce messaage que lorsque l'on clique sur le bouton. Est-ce possible?
    Normalement comme tu as met validate="true" dans ton <action> .....</action> , tu peut enlever le validate de ton formulaire, c'est struts qui fait la validation en se basant sur ta configuration dasn validator.xml, ça vient pas de validate de ton formulaire, et il faut qu ton form herite de validator de struts

  8. #28
    Membre confirmé Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Par défaut
    Citation Envoyé par bonano
    Normalement comme tu as met validate="true" dans ton <action> .....</action> , tu peut enlever le validate de ton formulaire, c'est struts qui fait la validation en se basant sur ta configuration dasn validator.xml, ça vient pas de validate de ton formulaire, et il faut qu ton form herite de validator de struts
    J'ai supprimé la méthode validate de mon ActionForm mais après ca ne fait plus rien comme vérifications. J'ai bien mon form qui hérite de validator de struts :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public final class TestValidatorForm extends ValidatorForm
    Voici le code de mon validation.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <form-validation>
        <formset>
     
            <form name="TestValidationForm">
               <field property="name" depends="required">
                    <arg0   key="prompt.test.name"/>               
               </field>
            </form>
        </formset>
    </form-validation>
    Il n'y a rien qui se passe quand il n'y a plus le validate de l'ActionForm donc je ne comprends pas comment ca fonctionne, suis perdue !!!

  9. #29
    Membre confirmé Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Par défaut
    Citation Envoyé par MooGle
    Ton formulaire ds ton struts config est avec un t et non T.
    Sinon CT koi ton erreure de départ ?
    Voila ce que j'ai dans struts-config.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <action path="/testValidator"
                    type="st.ccam.fmm.web.actions.testValidatorAction"
                    name="TestValidatorForm"
                    scope="session"
                    validate="true"
                    parameter="method"
                    input="/pages/testValidator.jsp">
                <forward name="success" path="/pages/testValidator.jsp" />
                <forward name="failed" path="/error.jsp" />
            </action>
    Mon problème de départ et qui est toujours le mêmen, c'est que je n'arrive pas à faire des vérifications en utilisant le plug-in Validator de Struts. Aucune pop-up javascript ne s'affiche en m'indiquant le message d'erreur ni même aucun affichage sur la page.

  10. #30
    Membre confirmé
    Profil pro
    Developpeur
    Inscrit en
    Avril 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Avril 2004
    Messages : 160
    Par défaut
    Essaye d'enlever ce code dans ta page onsubmit="return validateTestValidatorForm('TestValidatorForm');"

    tu n'as pas besoin de faire un onsubmit pour verifier, soit c'est validator qui le fait soit tu le fait en javascript avec onsubmit, mais dans ce cas là tu parle plus de plugin-validator de struts. Il faut choisir l'un des 2 et pas tous les deux au meme temps, sinon tu vas pas arriver à savoir d'ou ça vient le pb.

  11. #31
    Membre confirmé Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Par défaut
    Citation Envoyé par bonano
    Essaye d'enlever ce code dans ta page onsubmit="return validateTestValidatorForm('TestValidatorForm');"

    tu n'as pas besoin de faire un onsubmit pour verifier, soit c'est validator qui le fait soit tu le fait en javascript avec onsubmit, mais dans ce cas là tu parle plus de plugin-validator de struts. Il faut choisir l'un des 2 et pas tous les deux au meme temps, sinon tu vas pas arriver à savoir d'ou ça vient le pb.
    J'ai laisser le onsubmit et enlever le validate de l'ActionForm. Normalement Struts devrait générer une fonction javascript qui vérifiera que le champ est rempl, et si ce n'est pas le cas, il m'affiche le message d'erreur dans une pop-up mais ca ne marche pas.

  12. #32
    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
    Quand tu affiches le code source de la page jsp, as-tu une fonction javascript validateTestValidatorForm ?

  13. #33
    Membre confirmé Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Par défaut
    Citation Envoyé par c_nvy
    Quand tu affiches le code source de la page jsp, as-tu une fonction javascript validateTestValidatorForm ?
    Non justement il n'arrive pas à me la créer automatiquement. Je ne sais pas ce qu'il manque à mon code pour que cette fonction soit créer. Il manque juste ca pour que ca fonctionne (enfin le principal en résumé).

  14. #34
    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
    Dans ton fichier validation.xml, tu as mis TestValidationForm dans le nom du form :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form-validation>
        <formset>
            <form name="TestValidationForm">
               <field property="name" depends="required">
                    <arg0   key="prompt.test.name"/>               
               </field>
            </form>
        </formset>
    </form-validation>
    Or, dans ton struts-config.xml, c'est TestValidatorForm.

    Il faut mettre le même dans les deux.

  15. #35
    Membre confirmé Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Par défaut
    Citation Envoyé par c_nvy
    Dans ton fichier validation.xml, tu as mis TestValidationForm dans le nom du form :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form-validation>
        <formset>
            <form name="TestValidationForm">
               <field property="name" depends="required">
                    <arg0   key="prompt.test.name"/>               
               </field>
            </form>
        </formset>
    </form-validation>
    Or, dans ton struts-config.xml, c'est TestValidatorForm.

    Il faut mettre le même dans les deux.
    Bien vu, j'ai fais les corrections et quand je clique sur "Vérifier", voila ce que ca donne :

    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
     
    type Exception report
     
    message 
     
    description The server encountered an internal error () that prevented it from fulfilling this request.
     
    exception 
     
    javax.servlet.ServletException: org.apache.struts.util.RequestUtils.getUserLocale(Ljavax/servlet/http/HttpServletRequest;Ljava/lang/String;)Ljava/util/Locale;
    	at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:498)
    	at org.apache.jsp.testValidator_jsp._jspService(testValidator_jsp.java:131)
    	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:162)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:628)
    	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:383)
    	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:307)
    	at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1058)
    	at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:451)
    	at org.apache.struts.action.RequestProcessor.processActionForward(RequestProcessor.java:401)
    	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
    	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1420)
    	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:520)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:145)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:139)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
    	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2460)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:119)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
    	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:157)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
    	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
    	at java.lang.Thread.run(Thread.java:595)
     
     
    root cause 
     
    java.lang.NoSuchMethodError: org.apache.struts.util.RequestUtils.getUserLocale(Ljavax/servlet/http/HttpServletRequest;Ljava/lang/String;)Ljava/util/Locale;
    	at org.apache.struts.taglib.TagUtils.getUserLocale(TagUtils.java:792)
    	at org.apache.struts.taglib.html.HtmlTag.renderHtmlStartElement(HtmlTag.java:111)
    	at org.apache.struts.taglib.html.HtmlTag.doStartTag(HtmlTag.java:94)
    	at org.apache.jsp.testValidator_jsp._jspService(testValidator_jsp.java:80)
    	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:162)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:628)
    	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:383)
    	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:307)
    	at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1058)
    	at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:451)
    	at org.apache.struts.action.RequestProcessor.processActionForward(RequestProcessor.java:401)
    	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
    	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1420)
    	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:520)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:145)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:139)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
    	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2460)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:119)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
    	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:955)
    	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:157)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
    	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
    	at java.lang.Thread.run(Thread.java:595)
    voici le contenu de struts-config.xml (je l'ai un peu modifié) :

    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
     
    <form-beans type="org.apache.struts.action.ActionFormBean">
    		<form-bean name="testValidatorForm" type="st.ccam.fmm.web.forms.testValidatorForm" />
        </form-beans>
     
        <!-- Locale form bean -->
        <form-bean name="localeForm" type="org.apache.struts.action.DynaActionForm">
            <form-property name="language" type="java.lang.String" />
            <form-property name="country"  type="java.lang.String" />
        </form-bean>
     
        <!-- ========== Global Exception Definitions ============================== -->
        <global-exceptions />
     
        <!-- ========== Global Forward Definitions =============================== -->
    	  <global-forwards>
    	  </global-forwards>
     
        <!-- ========== Action Mapping Definitions =============================== -->
        <action-mappings>
        	<action name="/welcome" path="/pages/jsTestValidator.jsp" type="org.apache.struts.actions.ForwardAction"/>
     
        	<action path="/testValidator" forward="/pages/testValidator.jsp" />
     
            <action path="/testValidator_submit"
                    type="st.ccam.fmm.web.actions.testValidatorAction"
                    name="testValidatorForm"
                    scope="request"
                    validate="true"
                    cancellable="true"
                    input="input">
                <forward name="success" path="/pages/testValidator.jsp" />
                <forward name="input" path="/pages/testValidator.jsp" />
            </action>
     
            <action path="/jsTestValidator" forward="/pages/jsTestValidator.jsp" />
     
    		 <!-- Locale Action -->
          	<action path="/locale" 
                  type="st.ccam.fmm.web.actions.LocaleAction" 
                  name="localeForm" 
                  scope="request">
              	<forward name="success" path="/welcome.do" />
          	</action>
     
        </action-mappings>
     
     	<message-resources parameter="ApplicationResources" null="false" >
     	</message-resources> 
     
        <plug-in className="org.apache.struts.validator.ValidatorPlugIn" >
            <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validator.xml" />
        </plug-in>
    et voici ma page jsTestValidator.jsp :

    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
     
    <%@ taglib uri="/tags/struts-bean" prefix="bean" %>
    <%@ taglib uri="/tags/struts-html" prefix="html" %>
     
    <html:html>
    <head>
      <title>Log On FMM</title>
    </head>
     
    <body width="700">
    <u>Formulaire de test avec Validator </u>
    <p>
    	<logic:messagesPresent>
    	<ul>
    	<html:messages id="error">
    	<li><bean:write name="error" /></li>
    	</html:messages>
    	</ul> 
    	</logic:messagesPresent> 
     
    <html:form action="/testValidator_submit.do" onsubmit="return validateTestValidatorForm(this);">
    	<html:hidden property="action"/>
    	<html:text property="name" size="20">
    		<bean:message key="prompt.test.name"/>
    	</html:text>
     
    	<br><br>
    	<html:submit property="submit" value="Vérifier" onclick="bCancel=false;"/>&nbsp;
    	<html:reset value="Effacer" />&nbsp;
        <html:cancel onclick="bCancel=true;" value="Annuler"/>
     
    <!-- Begin Validator Javascript Function-->
    <html:javascript formName="testValidatorForm" />
    <!-- End of Validator Javascript Function-->
     
    </html:form>
     
    </p>
    </body>
    </html:html>
    Que signifie ce message d'erreur? et que dois-je faire?
    Et toujours pas de javascript généré

  16. #36
    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 sais pas pourquoi tu as cette erreur mais ton struts-config.xml est incorrect.
    Il faut mettre toutes les balises form-bean à l'intérieur de la balise form-beans :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form-beans>
    	<form-bean name="testValidatorForm" type="st.ccam.fmm.web.forms.testValidatorForm" />
     
        <!-- Locale form bean -->
        <form-bean name="localeForm" type="org.apache.struts.action.DynaActionForm">
            <form-property name="language" type="java.lang.String" />
            <form-property name="country"  type="java.lang.String" />
        </form-bean>
    </form-beans>

  17. #37
    Membre confirmé Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Par défaut
    Citation Envoyé par c_nvy
    Je ne sais pas pourquoi tu as cette erreur mais ton struts-config.xml est incorrect.
    Il faut mettre toutes les balises form-bean à l'intérieur de la balise form-beans :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <form-beans>
    	<form-bean name="testValidatorForm" type="st.ccam.fmm.web.forms.testValidatorForm" />
     
        <!-- Locale form bean -->
        <form-bean name="localeForm" type="org.apache.struts.action.DynaActionForm">
            <form-property name="language" type="java.lang.String" />
            <form-property name="country"  type="java.lang.String" />
        </form-bean>
    </form-beans>
    J'ai modifié, je n'avais pas vu ca mais ca ne marche toujours pas, toujours le même message d'erreur.
    Il signifie quoi?

  18. #38
    Membre confirmé Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Par défaut
    J'avais fait une erreur de frappe dans le fichier struts-config.xml, voila ce qui n'allait pas (en rouge) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <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'avais mis validator.xml.

    Maintenant, j'ai le code javascript généré sur la page mais toujours pas de pop-up pour afficher les messages d'erreur. Cela me génère ce message d'erreur dans Eclipse :

    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
     
    2007-06-19 11:03:30,083 ERROR [org.apache.struts.validator.ValidatorForm] (ValidatorForm.java:118) | No such validation method: org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionErrors, javax.servlet.http.HttpServletRequest)
    org.apache.commons.validator.ValidatorException: No such validation method: org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionErrors, javax.servlet.http.HttpServletRequest)
    	at org.apache.commons.validator.ValidatorAction.loadValidationMethod(ValidatorAction.java:604)
    	at org.apache.commons.validator.ValidatorAction.executeValidationMethod(ValidatorAction.java:532)
    	at org.apache.commons.validator.Field.validateForRule(Field.java:796)
    	at org.apache.commons.validator.Field.validate(Field.java:876)
    	at org.apache.commons.validator.Form.validate(Form.java:288)
    	at org.apache.commons.validator.Validator.validate(Validator.java:351)
    	at org.apache.struts.validator.ValidatorForm.validate(ValidatorForm.java:116)
    	at org.apache.struts.chain.commands.servlet.ValidateActionForm.validate(ValidateActionForm.java:58)
    	at org.apache.struts.chain.commands.AbstractValidateActionForm.execute(AbstractValidateActionForm.java:120)
    	at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    	at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    	at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    	at java.lang.Thread.run(Thread.java:595)
    Que cela signifie t-il? Il y a bien la classe "org.apache.struts.validator.FieldChecks" mais apparement il ne trouve pas la méthode "validateRequired". J'ai pourtant pris la dernière version du jar Struts et cela ne marche pas. Pourquoi?

  19. #39
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    Bonjour,

    non cela signifie que la méthode "validateRequired(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionErrors, javax.servlet.http.HttpServletRequest)" n'existe pas.

    En effet d'après la javadoc

    la methode est :
    validateRequired(java.lang.Object bean, org.apache.commons.validator.ValidatorAction va, org.apache.commons.validator.Field field, ActionMessages errors, org.apache.commons.validator.Validator validator, javax.servlet.http.HttpServletRequest request)

    ce qui signifie que le fichier "validator-rules.xml" n'est probablement pas celui de la version 1.3.8

  20. #40
    Membre confirmé Avatar de emeraudes
    Inscrit en
    Avril 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 148
    Par défaut
    Citation Envoyé par fnobb
    Bonjour,

    non cela signifie que la méthode "validateRequired(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionErrors, javax.servlet.http.HttpServletRequest)" n'existe pas.

    En effet d'après la javadoc

    la methode est :
    validateRequired(java.lang.Object bean, org.apache.commons.validator.ValidatorAction va, org.apache.commons.validator.Field field, ActionMessages errors, org.apache.commons.validator.Validator validator, javax.servlet.http.HttpServletRequest request)

    ce qui signifie que le fichier "validator-rules.xml" n'est probablement pas celui de la version 1.3.8
    Est ce que cela peut marcher ou faut-il mettre autre chose à la place?

    Fichier validator-rules.xml :
    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
     
    <validator name="required"
                classname="org.apache.struts.validator.FieldChecks"
                   method="validateRequired"
             methodParams="java.lang.Object bean, 
             		org.apache.commons.validator.ValidatorAction va,
                              org.apache.commons.validator.Field field, 
             		ActionMessages errors, 
    		org.apache.commons.validator.Validator validator, 
             		javax.servlet.http.HttpServletRequest request"
                      msg="errors.required">
     
             <javascript><![CDATA[
                function validateRequired(form) {
                    var isValid = true;
                    var focusField = null;
                    var i = 0;
                    var fields = new Array();
                    oRequired = new required();
                    for (x in oRequired) {
                            var field = form[oRequired[x][0]];
     
                        if (field.type == 'text' ||
                            field.type == 'textarea' ||
                            field.type == 'file' ||
                            field.type == 'select-one' ||
                            field.type == 'radio' ||
                            field.type == 'password') {
     
                            var value = '';
                                                    // get field's value
                                                    if (field.type == "select-one") {
                                                            var si = field.selectedIndex;
                                                            if (si >= 0) {
                                                                    value = field.options[si].value;
                                                            }
                                                    } else {
                                                            value = field.value;
                                                    }
     
                            if (trim(value).length == 0) {
     
                                    if (i == 0) {
                                        focusField = field;
                                    }
                                    fields[i++] = oRequired[x][1];
                                    isValid = false;
                            }
                        }
                    }
                    if (fields.length > 0) {
                       focusField.focus();
                       alert(fields.join('\n'));
                    }
                    return isValid;
                }
     
                // Trim whitespace from left and right sides of s.
                function trim(s) {
                    return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
                }
     
                ]]>
             </javascript>
     
          </validator>
    Mais avec cela, ca ne marche toujours pas.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. [DTD] Validation impossible:fichier dtd introuvable
    Par momjunior dans le forum Valider
    Réponses: 11
    Dernier message: 10/03/2010, 20h30
  2. [1.x] [sfWidgetDate] Masquage d'un champ => validation impossible
    Par Bleys dans le forum Symfony
    Réponses: 2
    Dernier message: 24/06/2009, 12h53
  3. [RMI] Impossible de lancer mon serveur
    Par Dahu dans le forum API standards et tierces
    Réponses: 11
    Dernier message: 11/06/2006, 10h17
  4. [Plugin Tomcat] Impossible de lancer TOMCAT
    Par Dahu dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 03/03/2005, 11h40
  5. impossible de lancer xmlrad
    Par hachach dans le forum XMLRAD
    Réponses: 3
    Dernier message: 07/09/2004, 17h52

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