Bonjour, j’aimerais créer un formulaire contenant une liste de textfield dont la taille dépend du nombre d’éléments que j’ai en base.
J'ai essayé comme ceci mais ça ne fonctionne pas.

Concrètement j'ai mon bean qui correspond à une table de ma base de données.
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
 
@Entity
public class Tarif implements Serializable {
	@Id
	@GeneratedValue
	@Column(name="ID_TARIF")
	private int idTarif;
 
        @Column(name="PRIX")
	private float prix;
 
        public int getIdTarif() {
		return this.idTarif;
	}
 
	public void setIdTarif(int idTarif) {
		this.idTarif = idTarif;
	}
 
        public float getPrix() {
		return this.prix;
	}
 
	public void setPrix(float prix) {
		this.prix = prix;
	}
}
J'ai ma classe action qui va contenir ma liste de Tarif.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
public class ActiviteAction extends ActionSupport{
        private List<Tarif> listTarif;
 
        public void setListTarif(List<Tarif> listTarif) {
		this.listTarif = listTarif;
	}
 
	public List<Tarif> getListTarif() {
		return listTarif;
	}
}
Et j'ai ma jsp qui affiche mon formulaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
...
<s:form>
        <s:iterator value="listTarif" status="status">	
                 <s:textfield name="listTarif[#status.index].prix" ></s:textfield>
	</s:iterator>
        <s:submit value="Valider"></s:submit>
</s:form>
J'ai bien mon formulaire qui s'affiche avec le bon nombre de textfield.
Les get() se font bien, c'est à dire que mes champs prix sont bien renseignés dans les textfield correspondants mais lorsque je les modifie et que je valide mon formulaire les set() ne sont pas appelés.
Ni les setPrix() , ni le setListTarif() ce qui fait que dans mon action je récupère ma listTarif à null.

Pouvez vous me dire où je fais erreur ou si il y a une meilleure solution pour résoudre mon problème. Merci