Essaye cela :
GômCode:<form name="TestValidatorForm" method="post" action="/testValidator.do" onsubmit="return validateTestValidatorForm(this);">
Version imprimable
Essaye cela :
GômCode:<form name="TestValidatorForm" method="post" action="/testValidator.do" onsubmit="return validateTestValidatorForm(this);">
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
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 ghohm
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?Citation:
Envoyé par bonano
De plus, il ouvre la page mis en input. Pourquoi? Où est l'erreur dans l'ActionForm" ?
struts-config.xml
L'ActionForm : TestValidatorAction.javaCode:
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>
Code:
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"); } }
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 !Citation:
Envoyé par emeraudes
Je sais ca mais quelle est cette erreur et comment la corriger?
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 strutsCitation:
Envoyé par emeraudes
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 :Citation:
Envoyé par bonano
Voici le code de mon validation.xml :Code:public final class TestValidatorForm extends ValidatorForm
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 !!! :(Code:
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>
Voila ce que j'ai dans struts-config.xml :Citation:
Envoyé par MooGle
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.Code:
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>
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.Citation:
Envoyé par bonano
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é).Citation:
Envoyé par c_nvy
Dans ton fichier validation.xml, tu as mis TestValidationForm dans le nom du form :
Or, dans ton struts-config.xml, c'est TestValidatorForm.Code:
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>
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 :Citation:
Envoyé par c_nvy
voici le contenu de struts-config.xml (je l'ai un peu modifié) :Code:
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)
et voici ma page jsTestValidator.jsp :Code:
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>
Que signifie ce message d'erreur? et que dois-je faire?Code:
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;"/> <html:reset value="Effacer" /> <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>
Et toujours pas de javascript généré :cry:
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:
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.Citation:
Envoyé par c_nvy
Il signifie quoi?
J'avais fait une erreur de frappe dans le fichier struts-config.xml, voila ce qui n'allait pas (en rouge) :
J'avais mis validator.xml.Code:
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>
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 :
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?Code:
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)
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?Citation:
Envoyé par fnobb
Fichier validator-rules.xml :
Mais avec cela, ca ne marche toujours pas.Code:
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>