bonsoir
je ss débutante dans struts et je voulais faire un tit exemple mais ça marche pasj'aurai tjr la meme erreur 404 la page n'est pas disponible !
est ce que qlq'un a une idée ??![]()
bonsoir
je ss débutante dans struts et je voulais faire un tit exemple mais ça marche pasj'aurai tjr la meme erreur 404 la page n'est pas disponible !
est ce que qlq'un a une idée ??![]()
Si tu veux de l'aide, il va falloir montrer un peu de code (web.xml, struts-config.xml, jsp, Action, ...).
Peux-tu aussi préciser la version de Struts que tu utilises ?
voila le web.xml
Code xml : 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 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <taglib> <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri> <taglib-location>/WEB-INF/struts-bean.tld</taglib-location> </taglib> </web-app>
le struts-config.xml
sachant que j'ai appliqué a la lettre un exemple paru ds un tutoriel !
Code xml : 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 <?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="controleur.formulaireBean" /> </form-beans> <action-mappings> <action path="index" name="frmPersonne" scope="session" validate="true" input="/erreurs.do" parameter="/vues/index.html" type="controleur.formulaireAction"> <forward name="reponse" path="/reponse.do"/> </action> <action path="/erreurs" parameter="/vues/erreurs.jsp" type="org.apache.struts.actions.ForwardAction" /> <action path="/reponse" parameter="/vues/reponse.jsp" type="org.apache.struts.actions.ForwardAction" /> <action path="/formulaire" parameter="/vues/formulaire.jsp" type="org.apache.struts.actions.ForwardAction" /> </action-mappings> </struts-config>
Ajoute un "/" dans l'attribut path ici :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <action path="/index" name="frmPersonne" scope="session" validate="true" input="/erreurs.do" parameter="/vues/index.html" type="controleur.formulaireAction"> <forward name="reponse" path="/reponse.do"/> </action>
j'ai tjr la mme erreur, qd je remplis le formulaire et je clique sur envoyer je reçois la mme page 404 index n'est pas disponible :s:s![]()
As-tu le même problème en ajoutant le paramètre load-on-startup pour l'ActionServlet dans le web.xml :
Sinon, peux-tu montrer le code de la page jsp et préciser la version de Struts que tu utilises (je l'ai d'ailleurs déjà demandé dans mon premier message) ?
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
aucune idée !!?
voila la page formulaire
concernant quelle version de struts , je sais pas comment le savoir
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 <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> <html> <head> <body> <h2>Personne - formulaire</h2> <hr> <html:form action="index" name="frmPersonne" type="controleur.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> </body> </html>![]()
As-tu ajouté le paramètre load-on-startup comme je te l'ai indiqué ?
Peux-tu montrer le code de l'Action et de l'ActionForm ?
la voila
ActionForm
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 package controleur; import org.apache.struts.action.Action; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import javax.servlet.ServletException; public class formulaireAction extends Action{ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { // on a un formulaire valide, sinon on ne serait pas arrivé là formulaireBean formulaire=(formulaireBean)form; request.setAttribute("nom",formulaire.getNom()); request.setAttribute("age",formulaire.getAge()); return mapping.findForward("reponse"); }//execute }
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 package controleur; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; public class formulaireBean extends ActionForm { // nom private String nom = null; private String age = null; public String getNom() { return nom; } public void setNom(String nom) { this.nom = nom; } 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 ActionError("personne.formulaire.nom.vide")); // l'âge doit être un entier positif } if (age == null || age.trim().equals("")) { erreurs.add("agevide", new ActionError("personne.formulaire.age.vide")); } else { // l'âge doit être un entier positif if (!age.matches("^\\s*\\d+\\s*$")) { erreurs.add("ageincorrect", new ActionError("personne.formulaire.age.incorrect", age)); // on rend la liste des erreurs } } //if // on rend la liste d'erreurs return erreurs; } }
Dans la méthode validate, pour créer des ActionErrors, tu utilises des clés définies dans un fichier des messages.
Or, dans ton struts-config.xml, je ne vois pas de balise message-resources référençant ce fichier des messages.
oui je sais , mais je crois pas que ca cause l'erreur!! je compte l'ajouter apres
Partager