Bonjour tout le monde,
J'ai un formulaire où j'ai deux champs lorsque je saisi un des deux champs, il m'affiche la valeur du champs saisi, mais si je saisis les deux champs en même temps, rien ne m'affiche, jai une page blanche.
Merci de votre aide![]()
Bonjour tout le monde,
J'ai un formulaire où j'ai deux champs lorsque je saisi un des deux champs, il m'affiche la valeur du champs saisi, mais si je saisis les deux champs en même temps, rien ne m'affiche, jai une page blanche.
Merci de votre aide![]()
Le code STP (jsp + Action) !
salut
je ne comprend pas bien ton probleme
mais si tu travaille avec J2EE tu peux recuperer la valeur de chaque champs avec la methode request.getParameter("nom de ton champ") te ensuite les afficher comme tu veux si c pas le cas explicite moi s'il te plait le probleme pour que je puisse te repondre
Je vous remercie
Voici ma jsp:
Voici formbean:
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 <%@ taglib uri="/WEB-INF/struts-html" prefix="html" %> <%@ taglib uri="/WEB-INF/struts-bean" prefix="bean" %> <%@ taglib uri="/WEB-INF/struts-logic" prefix="logic" %> <html:html> <head> <title></title> </head> <body> <html:form action="/action" focus="formulaire"> <table> <tr> <td><bean:message key="index.nom"/></td> <td><html:text property="nom" size="20"/></td> </tr> <tr> <td><bean:message key="index.prenom"/></td> <td><html:text property="prenom" size="20"/> </tr> <tr> <td><html:submit property="submit" value="envoyer"/></td> <td><html:reset property="reset" value="Annuler"/></td> </tr> </table> <bean:write name="formulaire" property="nom"/> <bean:write name="formulaire" property="prenom"/> </html:form> <html:errors/> </html:html>
Voici mon Beanaction:
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 package bean; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionMapping; /** * Servlet implementation class for Servlet: Personne * */ public class Personne extends org.apache.struts.action.ActionForm { /* (non-Java-doc) * @see javax.servlet.http.HttpServlet#HttpServlet() */ private String nom; private String prenom; public void setNom(String newnom) { this.nom=newnom; } public String getNom() { return this.nom; } public void setPrenom(String newprenom) { this.prenom=newprenom; } public String getPrenom() { return this.prenom; } public ActionErrors validate(ActionMapping mapping,HttpServletRequest request) { ActionErrors errors=new ActionErrors(); if((this.getNom()==null)|| (this.getNom().length()==0)) { errors.add("nom", new ActionError("errors.index.nom")); } if((this.getPrenom()==null)|| (this.getPrenom().length()==0)) { errors.add("prenom",new ActionError("errors.index.prenom")); } return errors; } }
Je vous remercie de votre aide
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 package bean; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * Servlet implementation class for Servlet: Personneaction * */ public class Personneaction extends Action { /* (non-Java-doc) * @see javax.servlet.http.HttpServlet#HttpServlet() */ public ActionForward execute (ActionMapping mapping,ActionForm form) { //String nom=((Personne) form).getNom(); //String prenom=((Personne)form).getPrenom(); return mapping.findForward("resultat"); } }
Une erreur sans rapport avec ton problème, mais bon :
focus doit contenir le nom d'un champ du formulaire que tu veux qu'il ait le focus !
Code : Sélectionner tout - Visualiser dans une fenêtre à part <html:form action="/action" focus="formulaire">
Sinon, pour être plus rigoureux, essaies ceci:
dans
et dans ta 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 package bean; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * Servlet implementation class for Servlet: Personneaction * */ public class Personneaction extends Action { public ActionForward execute (ActionMapping mapping,ActionForm form) { Personne p=(Personne) form; request.getSession().setAttribute("Person", p); return mapping.findForward("resultat"); } }
RQ:J'ai enlevé les balises de mise en forme pour plus de clarité !
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 <%@ taglib uri="/WEB-INF/struts-html" prefix="html" %> <%@ taglib uri="/WEB-INF/struts-bean" prefix="bean" %> <%@ taglib uri="/WEB-INF/struts-logic" prefix="logic" %> <html:html> <head> <title></title> </head> <body> <html:errors/> <html:form action="/action" focus="formulaire"> <bean:message key="index.nom"/> <html:text property="nom" size="20"/> <bean:message key="index.prenom"/> <html:text property="prenom" size="20"/> <html:submit property="submit" value="envoyer"/> <html:reset property="reset" value="Annuler"/> </html:form> <logic:present parameter="Person" scope="Session"> <bean:write name="Person" property="nom"/> <br> <bean:write name="Person" property="prenom"/> </logic:present </html:html>
Je te remercie modjo mais je viens de tester, ca fonctionne pas
Par conséquent j'ai remis comme c'était avant.
Pour rappeller mon problème le voici:
J'ai un formulaire où j'ai deux champs lorsque je saisi un des deux champs, il m'affiche la valeur du champs saisi, mais si je saisis les deux champs en même temps, rien ne m'affiche, jai une page blanche.
Je vous remercie de votre aide
Ton probleme est toujours le meme gentil tu codes des trucs sans avoir compris le but, et comment fontionne struts (je veux bien comprendre qu'au debut c'est un peu dur mais bon j'ai commencé il y a meme pas 3 mois donc c'est faisable).
Donc pour une Nieme explication sur le focus (a tout tes post je te l'explique) la propriété FOCUS c'est pour que tu es le focus (si tu sais pas ce que c'est cherche une definition sur) sur un champ précis. Si tu marque focus="formulaire" et que tu n'as pas de champs nommé "formulaire" ca ne sert a RIEN!
Ensuite pour ton probleme, c'est simple, si tu affichés les erreur avec la balise <html:errors> tu comprendrais mieux. Si tu ne saisie qu'un seul champ lorsque tu valides ton document il va detecter une ERREUR (voir ta methode validate faut que tu l'as comprenne si tu l'as met). Donc il te renvoi vers ta page d'input (donc ta page ou sont presente tes affichages de valeur).
Si tu saisis les 2 valeurs il n'y aura plus d'ERREUR. Donc il va passer dans ton action, et comme ton action renvoi vers :
Code : Sélectionner tout - Visualiser dans une fenêtre à part return mapping.findForward("resultat");
Vu que tu n'as pas mis le struts-config on peut pas etre devin. Si tu renvoi vers ce forward il faut qu'il soit DEFINI dans l'action ou dans les globals forwards. Et je prends le parie que ce forward n'est pas bien défini ou voir meme pas du tout.
je ne vois pas pourquoi mais peu etre ca
<td><html:text property="prenom" size="20"/>
</tr>
il fo fermer <td>
Partager