formulaire sur plusieurs pages
je souhaite faire un formulaire sur plusieurs pages.
donc j'ai un premier formulaire 'loginForm.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
|
<%@ 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> |
qui renvoie sur un deuxieme formulaire adresseForm.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
| <%@ 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> |
j'ai donc des balises emboitées pour représenter les objets qui contiennent les attributs des deux formulaires.
L'objet 'Login' contient un objet 'Adresse'.
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
| 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;
}
} |
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
| 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;
}
} |
j'ai mappé dans le fichier de config:
Code:
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> |
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:
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;
}
} |
j'ai une erreur qui me dit que je n'ai pas de getter pour le form:
Code:
No getter method for property: "login" of bean: "loginForm"
Est ce quelqu 'un peu m'aider pour avoir l'actionForm qui va bien ?