je souhaite faire un formulaire sur plusieurs pages.
donc j'ai un premier formulaire 'loginForm.jsp' :
qui renvoie sur un deuxieme formulaire adresseForm.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 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-nested" prefix="nested" %> <html:html> <head> <title>Page login</title> </head> <body> <html:form action="/Input" method="post"> <nested:nest property="personne"> Login <nested:text property="login" /><br /> Mot de passe <nested:text property="mdp" /><br /> <html:submit value="Soumettre"/> </nested:nest> </html:form> </body> </html:html>
j'ai donc des balises emboitées pour représenter les objets qui contiennent les attributs des deux formulaires.
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 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-nested" prefix="nested" %> <html:html> <head> <title>Page adresse</title> </head> <body> <nested:root name="loginForm"> <html:form action="/InputAdresse" method="post"> <nested:nest property="personne"> Login : <bean:write name="loginForm" property="login" scope="request" /><br> Mot de passe : <bean:write name="loginForm" property="mdp" scope="request" /><br /> <nested:nest property="adresse"> Numero de rue : <nested:text property="numRue" /><br /> Rue : <nested:text property="rue" /><br /> Code postal : <nested:text property="codePostal" /><br /> Ville : <nested:text property="ville" /><br /> </nested:nest> </nested:nest> <html:submit value="Soumettre"/> </html:form> </nested:root> </body> </html:html>
L'objet 'Login' contient un objet 'Adresse'.
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 package technote.beans; import java.io.Serializable; public class Login implements Serializable { private String login; private String mdp; private Adresse adresse = new Adresse(); public String getLogin() { return login; } public void setLogin(String login) { System.out.print("****** on passe dans setLogin(). ******"); this.login = login; } public String getMdp() { return mdp; } public void setMdp(String mdp) { System.out.print("****** on passe dans setMdp(). ******"); this.mdp = mdp; } }j'ai mappé dans le fichier de config:
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 package technote.beans; import java.io.Serializable; public class Adresse implements Serializable { private String numRue; private String rue; private String codePostal; private String ville; public String getCodePostal() { return codePostal; } public void setCodePostal(String codePostal) { this.codePostal = codePostal; } public String getNumRue() { return numRue; } public void setNumRue(String numRue) { this.numRue = numRue; } public String getRue() { return rue; } public void setRue(String rue) { this.rue = rue; } public String getVille() { return ville; } public void setVille(String ville) { this.ville = ville; } }
Mais je vois pas bien comment créer le actionForm 'LoginForm.java' qui va bien. Dans un tuto, il instancient un objet Login, mais ce ne fonctionne pas bien:
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 <?xml version="1.0" encoding="UTF-8"?> <struts-config> <form-beans> <form-bean name="loginForm" type="technote.actionform.LoginForm" /> </form-beans> <action-mappings> <action path="/Input" input="/pages/loginForm.jsp" name="loginForm" type="org.apache.struts.actions.ForwardAction" parameter="/pages/adresseForm.jsp" scope="request" /> <action path="/InputAdresse" name="loginForm" input="/pages/adresseForm.jsp" parameter="/pages/affiche.jsp" scope="request" /> </action-mappings> <message-resources parameter="MessageResources"/> </struts-config>
j'ai une erreur qui me dit que je n'ai pas de getter pour le form:
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 package technote.actionform; import org.apache.struts.action.ActionForm; import technote.beans.Login; public class LoginForm extends ActionForm { private Login personne = new Login(); public Login getPersonne() { return this.personne; } public void setPersonne(Login personne) { this.personne = personne; } }
Est ce quelqu 'un peu m'aider pour avoir l'actionForm qui va bien ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part No getter method for property: "login" of bean: "loginForm"
Partager