Salut tout le monde , j'avance dans mon tutorial Struts de Mr Tahe ( http://tahe.developpez.com/java/struts/ )
je suis arrivé à la phase de test et au moment ou je valide dans mon formulaire j'ai l'erreur suivante :
j'ai vérifier 2 fois les fichiers, la configuration et le tutorial.. (mais bon ...
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 20:23:20,595 ERROR [RequestUtils] Error creating form bean of class stia.st.struts.personne.FormulaireBean java.lang.ClassNotFoundException: stia.st.struts.personne.FormulaireBean at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1340) at org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1189) at org.apache.struts.util.RequestUtils.applicationClass(RequestUtils.java:207) at org.apache.struts.util.RequestUtils.createActionForm(RequestUtils.java:797) at org.apache.struts.action.RequestProcessor.processActionForm (RequestProcessor.java:364) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:253) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) at org.apache.struts.action.ActionServlet.doPost (ActionServlet.java:525) 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:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java :75) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:44) at org.apache.catalina.core.StandardValveContext.invokeNext (StandardValveContext.java:102) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:169) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java :102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.core.StandardValveContext.invokeNext (StandardValveContext.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.core.StandardValveContext.invokeNext (StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service (CoyoteAdapter.java:160) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java :705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java :619))
voici mon srtuts-config.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 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> <struts-config> <form-beans> <form-bean name="frmPersonne" type="stia.st.struts.personne.FormulaireBean" /> </form-beans> <action-mappings> <action path="/main" name="frmPersonne" scope="session" validate="true" input="/erreurs.do" parameter="/vues/main.html" type="org.apache.struts.actions.ForwardAction" /> <action path="/erreurs" parameter="/vues/erreurs.personne.jsp" type="org.apache.struts.actions.ForwardAction" /> <action path="/reponse" parameter="/vues/reponse.personne.jsp" type="org.apache.struts.actions.ForwardAction" /> <action path="/formulaire" parameter="/vues/formulaire.personne.jsp" type="org.apache.struts.actions.ForwardAction" /> </action-mappings> <message-resources parameter="ressources.personneressources"/> </struts-config>
mon FormulaireBean.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
42
43
44
45
46
47
48
49
50
51 package istia.st.struts.personne; import javax.servlet.http.*; import org.apache.struts.action.*; public class FormulaireBean extends ActionForm { // nom private String nom = null; public String getNom() { return nom; } public void setNom(String nom) { this.nom = nom; } // age private String age = null; public String getAge() { return age; } public void setAge(String age) { this.age = age; } // validation public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { // gestion des erreurs ActionErrors erreurs = new ActionErrors(); // le nom doit être non vide if (nom == null || nom.trim().equals("")) { erreurs.add("nomvide", new ActionMessage("personne.formulaire.nom.vide")); // l'âge doit être un entier positif } if (age == null || age.trim().equals("")) { erreurs.add("agevide", new ActionMessage("personne.formulaire.age.vide")); } else { // l'âge doit être un entier positif if (!age.matches("^\\s*\\d+\\s*$")) { erreurs.add("ageincorrect", new ActionMessage("personne.formulaire.age.incorrect", age)); // on rend la liste des erreurs } } //if // on rend la liste d'erreurs return erreurs; } }
mon formulaire.personne.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
41
42
43
44
45 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> <html> <meta http-equiv="pragma" content="no-cache"> <head> <title>Personne - formulaire</title> <script language="javascript"> function effacer(){ with(document.frmPersonne){ nom.value=""; age.value=""; } } </script> </head> <body> <center> <h2>Personne - formulaire</h2> <hr> <html:form action="/main" name="frmPersonne" type="istia.st.struts.personne.FormulaireBean"> <table> <tr> <td>Nom</td> <td><html:text property="nom" size="20"/></td> </tr> <tr> <td>Age</td> <td><html:text property="age" size="3"/></td> </tr> <tr> </table> <table> <tr> <td><html:submit value="Envoyer"/></td> <td><html:reset value="Rétablir"/></td> <td><html:button property="btnEffacer" value="Effacer" onclick="effacer()"/></td> </tr> </table> </html:form> </center> </body> </html>
alors une idée sur la source du problème ?
Merci beaucoup![]()
Partager