ArrayList ré-initialisé à chaque action
Bonjour,
Je suis un tuto (ici) et, comme vous pouvez le voir en page 12, à chaque fois que l'on ajoute un développeur, il est gardé en mémoire dans une liste (liste qui n'est d'ailleurs jamais instanciée dans le tuto ... ou alors je ne l'ai pas vue).
Dans mon cas, cette liste de développeurs n'est pas gardée et est donc ré-initialisée à chaque action lister().
Je ne comprends pas bien car j'ai créé l'instanciation de ma liste.
Voici le fichier struts.xml :
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
| <struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
<constant name="struts.devMode" value="true"/>
<package name="com.developpez.action" namespace="/" extends="struts-default">
<default-action-ref name="saisir_Developpeur"/>
<action name="saisir_Developpeur">
<result>/jsp/saisir_Developpeur.jsp</result>
</action>
<action name="enregistrer_Developpeur" class="com.developpez.action.DeveloppeurAction" method="enregistrer">
<result name="success">/jsp/lister_Developpeur.jsp</result>
<result name="input">/jsp/saisir_Developpeur.jsp</result>
</action>
<action name="lister_Developpeur" class="com.developpez.action.DeveloppeurAction" method="lister">
<result name="success">/jsp/lister_Developpeur.jsp</result>
</action>
<action name="supprimer_Developpeur" class="com.developpez.action.DeveloppeurAction" method="supprimer">
<result name="success">/jsp/lister_Developpeur.jsp</result>
</action>
</package>
</struts> |
voici le fichier DeveloppeurAction.java :
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
| import java.util.ArrayList;
import com.developpez.beans.Developpeur;
import com.opensymphony.xwork2.ActionSupport;
public class DeveloppeurAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 5358846971741236790L;
private int identifiant;
private String pseudo;
private String mail;
private String codePostal;
private java.util.Date dateInscription;
// private ArrayList<Developpeur> listDeveloppeurs = new ArrayList<Developpeur>();
private ArrayList<Developpeur> listDeveloppeurs;
public int getIdentifiant() {
return identifiant;
}
public void setIdentifiant(int identifiant) {
this.identifiant = identifiant;
}
public String getPseudo() {
return pseudo;
}
public void setPseudo(String pseudo) {
this.pseudo = pseudo;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
public String getCodePostal() {
return codePostal;
}
public void setCodePostal(String codePostal) {
this.codePostal = codePostal;
}
public java.util.Date getDateInscription() {
return dateInscription;
}
public void setDateInscription(java.util.Date dateInscription) {
this.dateInscription = dateInscription;
}
public void setListDeveloppeurs(ArrayList<Developpeur> listDeveloppeurs) {
if(listDeveloppeurs == null) {
listDeveloppeurs = new ArrayList<Developpeur>();
}
this.listDeveloppeurs = listDeveloppeurs;
}
public ArrayList<Developpeur> getListDeveloppeurs() {
if(listDeveloppeurs == null) {
listDeveloppeurs = new ArrayList<Developpeur>();
}
return listDeveloppeurs;
}
public String enregistrer() {
System.out.println("dans la méthode enregistrer()......");
if(listDeveloppeurs == null) {
listDeveloppeurs = new ArrayList<Developpeur>();
}
for (int i =0; i < listDeveloppeurs.size(); i++){
System.out.println("PSEUDO : " + listDeveloppeurs.get(i).getPseudo());
}
Developpeur developpeur = new Developpeur();
developpeur.setIdentifiant(identifiant);
developpeur.setPseudo(pseudo);
developpeur.setMail(mail);
developpeur.setCodePostal(codePostal);
developpeur.setDateInscription(dateInscription);
listDeveloppeurs.add(developpeur);
if (this.pseudo.equals("")) {
return "input";
}
return "success";
}
public String lister() {
System.out.println("dans la méthode lister().....");
return "success";
}
public String supprimer() {
System.out.println("dans la méthode supprimer().....");
if(listDeveloppeurs == null) {
listDeveloppeurs = new ArrayList<Developpeur>();
}
listDeveloppeurs.removeAll(getListDeveloppeurs());
return "success";
}
} |
voici le bean Developpeur.java :
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
| public class Developpeur {
private int identifiant;
private String pseudo;
private String mail;
private String codePostal;
private java.util.Date dateInscription;
public int getIdentifiant() {
return identifiant;
}
public void setIdentifiant(int identifiant) {
this.identifiant = identifiant;
}
public String getPseudo() {
return pseudo;
}
public void setPseudo(String pseudo) {
this.pseudo = pseudo;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
public String getCodePostal() {
return codePostal;
}
public void setCodePostal(String codePostal) {
this.codePostal = codePostal;
}
public java.util.Date getDateInscription() {
return dateInscription;
}
public void setDateInscription(java.util.Date dateInscription) {
this.dateInscription = dateInscription;
}
} |
et le fichier lister_Developpeur.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 38 39 40 41 42
| <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Lister les developpeurs</title>
</head>
<body>
<center>
<div>
<center>
<h2>Liste des développeurs sur developpez.com</h2>
</center>
<s:if test="%{listDeveloppeurs.size()>0}">
<s:iterator value="listDeveloppeurs">
<br />
Identifiant : <s:property value="identifiant" />
<br />
Pseudo : <s:property value="pseudo" />
<br />
Mail : <s:property value="mail" />
<br />
Code postale : <s:property value="codePostal" />
<br />
Date d'inscription : <s:property value="dateInscription" />
<br />
</s:iterator>
</s:if>
<s:else>
Aucun développeur dans la liste
</s:else>
</div>
<p></p>
<a href="saisir_Developpeur.action">Ajouter un développeur</a><br />
<a href="supprimer_Developpeur.action">Supprimer les développeurs</a>
</center>
</body>
</html> |
voici mon fichier saisir_Developpeur.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 38 39 40 41
| <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Saisir un développeur</title>
</head>
<body>
<center><h2>Bienvnue sur le site developpez.com</h2>
<div id="formulaire">
<s:form method ="post" action="enregistrer_Developpeur">
<s:textfield name="identifiant" id="identifiant"
label="Identifiant" labelposition="left">
</s:textfield>
<s:textfield name="pseudo" id="pseudo"
label="Pseudo" labelposition="left">
</s:textfield>
<s:textfield name="mail" id="mail"
label="Email" labelposition="left">
</s:textfield>
<s:textfield name="codePostal" id="codePostal"
label="Code Postale" labelposition="left">
</s:textfield>
<s:textfield name="dateInscription" id="dateInceription"
label="Date Inscription" labelposition="left">
</s:textfield>
<s:submit value = "Envoyer"></s:submit>
</s:form>
</div>
</center>
</body>
</html> |
Je vous remercie par avance de bien vouloir m'apporter votre aide !
:D