Bonjour,

J'en appelle aux connaissances des développeurs de ce forum car je suis face à un problème qui dépasse mon entendement.

Soit un BO Demande (simplifié) :

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
 
public class Demande implements Serializable {
  private List<HeureDeclaree> heuresDeclarees;
  private List<QuantiteDetail> quantiteDetail;
 
  public List<HeureDeclaree> getHeuresDeclarees() {
	return heuresDeclarees;
  }
  public void setHeuresDeclarees(List<HeureDeclaree> heuresDeclarees) {
	this.heuresDeclarees = heuresDeclarees;
  }
  public List<QuantiteDetail> getQuantiteDetail() {
        return quantiteDetail;
  }
  public void setQuantiteDetail(List<QuantiteDetail> quantiteDetail) {
        this.quantiteDetail = quantiteDetail;
  }
}
Soient les BO QuantiteDetail et HeureDeclaree :

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
 
public class QuantiteDetail implements Serializable {
 
	private Detail detail;
	private String idDemande;
	private int quantite;
 
 
	public Detail getDetail() {
		return detail;
	}
	public void setDetail(Detail detail) {
		this.detail = detail;
	}
	public String getIdDemande() {
		return idDemande;
	}
	public void setIdDemande(String idDemande) {
		this.idDemande = idDemande;
	}
	public int getQuantite() {
		return quantite;
	}
	public void setQuantite(int quantite) {
		this.quantite = quantite;
	}
}
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
 
public class HeureDeclaree implements Serializable {
 
	private int id;
	private String idDemande;
	private Date datePrestation;
	private Date heureDebutTravail;
	private Date heureFinTravail;
	private int nbrTechnicien;
 
        public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
        public Date getDatePrestation() {
		return datePrestation;
	}
 
 
	public void setDatePrestation(Date datePrestation) {
		this.datePrestation = datePrestation;
	}
	public String getIdDemande() {
		return idDemande;
	}
	public void setIdDemande(String idDemande) {
		this.idDemande = idDemande;
	}
	public Date getHeureDebutTravail() {
		return heureDebutTravail;
	}
	public void setHeureDebutTravail(Date dateDebutTravail) {
		this.heureDebutTravail = dateDebutTravail;
	}
	public Date getHeureFinTravail() {
		return heureFinTravail;
	}
	public void setHeureFinTravail(Date dateFinTravail) {
		this.heureFinTravail = dateFinTravail;
	}
	public int getNbrTechnicien() {
		return nbrTechnicien;
	}
	public void setNbrTechnicien(int nbrTechnicien) {
		this.nbrTechnicien = nbrTechnicien;
	}
}
Je veux dans un formulaire pouvoir remplir entre autres le champ quantite de mon bean QuantiteDetail et le champ nbrTechnicien du bean HeureDeclaree

Dans ma JSP je fais donc ceci :

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
 
<html:form action="declarerDemande?mode=declarerDemande" method="POST">
<logic:iterate id="heuresDeclarees" name="declarerDemandeForm" property="demande.heuresDeclarees">
	<tr>
		<td colspan="2">
			<html:text styleClass="champTexteUnitaire" indexed="true" name="heuresDeclarees" property="nbrTechnicien"/>
	       <td>
					</tr>	
 
</logic:iterate>
 
<br/>
<br/>
 
<logic:iterate id="quantitesDetails" name="declarerDemandeForm" property="demande.quantiteDetail">
  <tr>
        <td width="70%">
           <html:text styleClass="champTexteUnitaire" indexed="true" name="quantitesDetails" property="quantite"/>
	</td>
  </tr>
</logic:iterate>
<html:submit>Soumettre</html:submit>
</html:form>

Alors, soit une situation où ma liste d'heureDeclare à une taille de 3 et ma liste de QuantiteDetail a une longueur de 4.

Avec ma JSP si je rentre comme valeur pour mes quantites 1,2,3,4 alors quand je soumets le formulaire je récupère bien la valeur 1 pour le premier élément de ma liste, la valeur 2 pour le deuxième, etc... Donc là c'est OK.

Par contre pour le nombre de technicien, si je rentre comme valeur 1,2,3, alors quand je soumets le formulaire je récupère la valeur 2 pour l'ensemble des éléments de ma liste !!!
Il me met la deuxième valeur dans tous les autres éléments de ma liste.

Je ne comprend pas du tout pourquoi ça fait ça alors que pour l'autre liste ça fonctionne.

Aidez-moi s'il vous plait